Solidity开发注意

pragma版本:1、版本要高于0.4.24才可以编译;2、高于0.5的版本则不可编译;3、第三位的版本号可以变,留出来用做bug可以修复(如0.4.1的编译器有bug,可在0.4.2修复,现有合约不用改代码)。

注释:1、单行注释// 2、多行注释/*....*/ 3、natspec 注释,它们是用三个反斜杠(///)或双星号开头的块(/** ... */)书写,它们应该直接在函数声明或语句上使用。

事件:以太坊虚拟机日志工具的方便接口。

结构体:可以将几个变量分组的自定义类型(自定义复杂变量的模板)。

状态变量可以被定义为constant,常量。这样的话,它必须在编译期间通过一个表达式赋值。赋值的表达式不允许:1、访问storage;2、区块链数据,如now,this.balance,block.number;3、合约执行的中间数据,如msg.gas;4、向外部合约发起调用。注意:不是所有的类型都支持常量,当前支持的仅有值类型和字符串。

Fallback 方法:

function () public payable {
}

这个没有任何名字的是 Fallback方法。一个合约只能存在一个。这个方法没有参数,也没有任何返回值。如果有人调用这个合约,但是指定的方法找不到,它会被触发。还有,当这个合约地址单纯地收到 Ether 的时候(比如他人转账到这个合约地址),这个方法也会被调用。所以,它必须被标记为 payable 。不然,这个合约地址就没法通过普通的交易接收 Ether 了。要注意的是,如果这个方法里面有逻辑,一定要确保它的 Gas 消耗要小于 2300。

 

posted @ 2019-11-05 15:18  人艰不拆_zmc  阅读(271)  评论(0编辑  收藏  举报