Note
介紹 Solidity 中的 constructor
和 modifier
构造函数 (constructor) 是一种特殊的函数,每个合约可以定义一个,并在部署合约的时候自动运行一次,可以用来初始化合约的一些参数。
Tip
在 Solidity 0.4.22 之前,构造函数不使用 constructor 而是使用与合约名同名的函数作为构造函数而使用
修饰器 (modifier) 是 Solidity 特有的语法,类似于面向对象编程中的装饰器(decorator),声明函数拥有的特性,并减少代码冗余。
modifier 的主要使用场景是运行函数前的检查,例如地址,变量,余额等。
-
Q: . 一个合约可以定义多个构造函数(constructor)?
A: 錯誤 -
Q: 构造函数的运行,只能通过手动调用?
A: 錯誤 -
Q: 构造函数是否可以用来初始化合约参数?
A: 是 -
Q: 关于solidity中的修饰器(modifier),以下描述中正确的个数为?
A:- 可以用来声明函数某些特性
- 主要使用场景是运行函数前的检查
- 可以减少代码冗余
- modifier类似面向对象编程中的decorator
-
Q: 阅读图中代码,非owner地址是否可以调用函数F?
address owner; // 省略部分代码 // 定义modifier modifier M { require(msg.sender == owner); _;// 如果是的话,继续运行函数主体;否则报错并revert交易 } function F (address _address) external { owner = _address; }
A: 否