为什么这个值没有改变,使用 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;