| 知乎專欄 | 多維度架構 | | | 微信號 netkiller-ebook | | | QQ群:128659835 請註明“讀者” |
構造方法的定義是 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);
}
}