很抱歉,如果是重复的问题。 “_”运算符是做什么的?
此代码来自以太坊合约手册: https://ethereum.org/token#deploying
contract owned {
address public owner;
function owned() {
owner = msg.sender;
}
modifier onlyOwner {
if (msg.sender != owner) throw;
_;
}
function transferOwnership(address newOwner) onlyOwner {
owner = newOwner;
}
}
答案 0 :(得分:0)
它用于修饰符内部。
“函数体插入了特殊符号”_“中 出现修饰语的定义。“
参考: Contracts — Solidity 0.4.19 documentation
如果它只在修饰符中使用一次,您可以看到如下:
分配返回变量后,_
将控制流返回到当前修改器旁边的内容(当前修改器旁边可能是下一个修改器或函数)。
您可以在答案中看到详细解释和示例:
Are underscores _
in modifiers code or are they just meant to look cool?
答案 1 :(得分:0)
修饰符用于强制执行函数的前/后条件。
_
运算符是一个简写,表示您正在修改的函数的实际代码" 。
因此,在您的代码中,每次调用transferOwnership
时,onlyOwner
修改器都会首先发挥作用。
throw
,将所有内容回滚并退出。 _
运算符,因此将执行transferOwnership
语句。