智能合约语法详谈——this.|view 函数 pure 函数|fallback函数

本文详细介绍了智能合约中的关键概念:this关键字用于外部访问,public状态变量自动带有getter函数。view和pure函数分别限制了对状态变量的读写操作,保证了合约的只读性和不可篡改性。fallback函数作为无名函数,在调用失败或接收以太币时执行,需标记为payable以接收以太币。注意,fallback函数的gas限制和调用成本,应确保其执行效率。
摘要由CSDN通过智能技术生成

this.

使用 this. 即为外部访问

contract C {
    uint public data;
    function X() public {
        data = 3;//内部访问
        uint val = this.data();//外部访问
    }
}  

 

对于所有 public 状态变量 solidity编译器自动为状态变量生成对应的 getter(访问器)特性

内部访问 getter 即为状态变量,外部访问即为 一个函数

 

view 函数 pure 函数

可以将函数声明为 view 类型,表示这种情况下函数只能读取状态变量,但不能修改状态变量,即函数不能执行SSTORE(EVM的汇编代码,表示写入),也不能发送和接收以太币。在调用其他函数时只能调用 view 和 pure 函数

下面语句被认为修改了状态

  • 修改状态变量
  • 创建事件
  • 创建其他智能合约
  • 使用selfdestruct
  • 通过调用发送以太币
  • 调用任何没有标记为 view 和 pure 的函数
  • 使用低级调用
  • 使用包含特定操作码的内联汇编

getter 方法 被默认标记为 view

 

可以将函数声明为 pure 类型,表示这种情况下函数不读取状态变量,也不能修改状态变量,即函数不能执行SSTORE(EVM的汇编代码,表示写入)和 SLOAD指令,也不能发送和接收以太币。在调用其他函数时只能调用 pure 函数。

以下被认

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值