在 Solidity 合约中,括号内的函数参数本身有什么作用?

What does having a function argument inside parenthesis by itself do in a Solidity contract?

在 Solidity 合约中,括号内的函数参数本身有什么作用?

例如,在第 84-86 行找到的合约 here 中,函数的参数 _from_value_data 各自独立括号内的线。然后 _amount 在第 91 行上它自己的行。

contract UserWallet {
    ...

    function tokenFallback(address _from, uint _value, bytes _data) {
        (_from);
        (_value);
        (_data);
     }

    function sweep(address _token, uint _amount)
    returns (bool) {
        (_amount);
        return sweeperList.sweeperOf(_token).delegatecall(msg.data);
    }
}

这只是一种抑制“未使用局部变量”警告的方法。

除此之外,它对合约的行为没有任何影响。变量已经从函数参数加载到内存中,因此即使有或没有函数体中的表达式,gas 的使用也是相同的。

function tokenFallback(address _from, uint _value, bytes _data) {
}

我无法解释为什么合同作者选择将变量括在括号中。也许这是他们发出信号的方式“这个变量没有发生任何其他事情”。但展开的表达式也有同样的效果。

function tokenFallback(address _from, uint _value, bytes _data) {
    _from;
    _value;
    _data;
}