在哪里可以获得关于solidity中这个奇怪赋值的详细解释?
构造函数中的那个。多个====。
在官方文档中找不到任何内容。
contract Token {
mapping(address => uint) balances;
uint public totalSupply;
uint public anotherUint = 10;
constructor(uint _initialSupply, uint _anotherUint) {
balances[msg.sender] = totalSupply = anotherUint = _initialSupply = _anotherUint;
}
function transfer(address _to, uint _value) public returns (bool) {
require(balances[msg.sender] - _value >= 0);
balances[msg.sender] -= _value;
balances[_to] += _value;
return true;
}
function balanceOf(address _owner) public view returns (uint balance) {
return balances[_owner];
}
}
这是链式赋值的一个例子,在许多其他编程语言中都可以使用。
JS中的示例:
// copy paste this to your browser devtools console to explore how it works
let _initialSupply = 5;
let _anotherUint = 10;
let anotherUint;
let totalSupply;
const balance = totalSupply = anotherUint = _initialSupply = _anotherUint;
它指定:
_anotherUint
到_initialSupply
的- 值(覆盖构造函数中传递的值(
_initialSupply
到anotherUint
的(新(值anotherUint
到totalSupply
的值- 最后是
totalSupply
的值到balances[msg.sender]
(或者在我的JS代码中到balance
(
Solidity文档似乎没有涵盖这个主题,但它并不是仅对Solidity明确的。