zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    一意孤行
    叶子书签
    漫舞
    男朋友
    ubuntu自动关机命令,ubuntu 无法关机解决方法
    情人节
    生死由天
    春暖花开
    android开发学习中的问题:error: device not found解决办法
    暗恋
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/10510591.html
Copyright © 2011-2022 走看看