| 知乎专栏 | 多维度架构 |
构造方法的定义是 contract 与 function 相同
pragma solidity ^0.4.18;
contract MyContractByNetkiller {
/* Constructor */
function MyContractByNetkiller() public{
}
}
除了 f(2,3) 这样传递参数,还可以使用类似字典或Map的方式 f({value: 2, key: 3});
pragma solidity ^0.4.0;
contract C {
function f(uint key, uint value) {
// ...
}
function g() {
// named arguments
f({value: 2, key: 3});
}
}
完整的例子
pragma solidity ^0.4.18;
contract MyContractByNetkiller {
/* Constructor */
string name;
int num;
function MyContractByNetkiller() public{
name = "default";
num = 1;
}
function setName(string _name) public{
name = _name;
}
function getName() public view returns(string){
return name;
}
function setNum(int n) public{
num = n;
}
function addNum(int m) public view returns(int res){
res = m + num;
}
}
modifier 可以理解为 function 的触发器,或者理解为 hook。执行 function的时候会首先运行 modifier
_; 表示执行 modifier 完成所有命令后,继续运行 function 内的逻辑。
pragma solidity ^0.4.11;
contract owned {
function owned() { owner = msg.sender; }
address owner;
uint price;
mapping (address => bool) registeredAddresses;
modifier onlyOwner {
require(msg.sender == owner);
_;
}
function changePrice(uint _price) onlyOwner {
price = _price;
}
function close() onlyOwner {
selfdestruct(owner);
}
}