Skip to content

Latest commit

 

History

History
59 lines (39 loc) · 1.76 KB

File metadata and controls

59 lines (39 loc) · 1.76 KB

WTF Solidity 極簡入門:11. 構造函數和修飾器

重點內容

Note

介紹 Solidity 中的 constructormodifier

隨筆

構造函數 constructor

构造函数 (constructor) 是一种特殊的函数,每个合约可以定义一个,并在部署合约的时候自动运行一次,可以用来初始化合约的一些参数。

Tip

Solidity 0.4.22 之前,构造函数不使用 constructor 而是使用与合约名同名的函数作为构造函数而使用

修飾器 modifier

修饰器 (modifier) 是 Solidity 特有的语法,类似于面向对象编程中的装饰器(decorator),声明函数拥有的特性,并减少代码冗余。
modifier 的主要使用场景是运行函数前的检查,例如地址,变量,余额等。

題目練習

  1. Q: . 一个合约可以定义多个构造函数(constructor)?
    A: 錯誤

  2. Q: 构造函数的运行,只能通过手动调用?
    A: 錯誤

  3. Q: 构造函数是否可以用来初始化合约参数?
    A:

  4. Q: 关于solidity中的修饰器(modifier),以下描述中正确的个数为?
    A:

    • 可以用来声明函数某些特性
    • 主要使用场景是运行函数前的检查
    • 可以减少代码冗余
    • modifier类似面向对象编程中的decorator
  5. Q: 阅读图中代码,非owner地址是否可以调用函数F?

       address owner;
    
       // 省略部分代码
    
       // 定义modifier
       modifier M {
          require(msg.sender == owner);
          _;// 如果是的话,继续运行函数主体;否则报错并revert交易
       }
       function F (address _address) external {
          owner = _address;
       }
    

    A: