固体中的表达"variableName;"是什么意思?



我在文档中找不到有关此表达式的任何信息。关于Ehternaut重新进入任务,有以下代码。

function withdraw(uint _amount) public {
if(balances[msg.sender] >= _amount) {
(bool result,) = msg.sender.call{value:_amount}("");
if(result) {
_amount;
}
balances[msg.sender] -= _amount;
}
}

_amount;是什么意思?

if(result) {
_amount;
}

这个片段实际上没有任何作用。您可以安全地忽略它,因为它与可重入性漏洞无关。

如果没有提到的代码段,编译器将对未使用的result变量发出警告。如果他们没有声明result变量,就会出现另一个关于不检查低级调用结果的警告。如果他们只是让条件块为空——是的,这是关于空块的另一个警告。

所以我最好的猜测是,作者只是想清除警告,并选择了这种方式。

相关内容

  • 没有找到相关文章

最新更新