为什么这个值没有改变,使用 slodity 0.8.6
Why hasn't this value changed ,use slodity 0.8.6
我用hardhat测试我的合约,合约代码如下:
uint256 public investLength;
function A()external{
uint256 id = investLength++;
_a(id);
}
function _a(uint256 _Id) internal returns (address) {
require(_id != 0, 'id zero');
}
当 运行 测试时,return id 零 。这段代码似乎不起作用 =>investLength++,这个值没有改成1;
uint256 id = investLength++;
此代码段将 investLength
的当前值(默认情况下为 0)分配给 id
、,然后 递增 investLength
。
如果要先增加 investLength
,然后将已经增加的值分配给 id
,请使用此表达式:
uint256 id = ++investLength;
我用hardhat测试我的合约,合约代码如下:
uint256 public investLength;
function A()external{
uint256 id = investLength++;
_a(id);
}
function _a(uint256 _Id) internal returns (address) {
require(_id != 0, 'id zero');
}
当 运行 测试时,return id 零 。这段代码似乎不起作用 =>investLength++,这个值没有改成1;
uint256 id = investLength++;
此代码段将 investLength
的当前值(默认情况下为 0)分配给 id
、,然后 递增 investLength
。
如果要先增加 investLength
,然后将已经增加的值分配给 id
,请使用此表达式:
uint256 id = ++investLength;