Solidity

記憶體使用模式 Solidity?

  • October 30, 2019

我想知道什麼是最有效的方法(以及為什麼),使用記憶體中的變數進行關於 A 和 B 的函式呼叫?

**一)**像這樣:

function checkBalance() public view returns (uint256) {
       address _payee = msg.sender;
       return balanceOf(_payee);
   }

**B)**或者像這樣:

    function checkBalance(address beneficiary) public view returns (uint256) {
           return balanceOf(beneficiary);
       }

因此,如果您的意思是在記憶體中實例化變數而不是直接使用它會受到嚴重懲罰,不,沒有。實際上,如果編譯器足夠聰明,可能根本不會有任何懲罰,這在這種情況下應該不是問題(特別是在solidity編譯器中啟用了優化)。

話雖這麼說,為了便於閱讀,我只會將一個變數儲存在本地變數中,我認為這在您的情況下是不合理的,因此B出於簡單性和可讀性的考慮,我認為這是一個口味問題.

引用自:https://ethereum.stackexchange.com/questions/77076