State-Variable

將相等的值分配給現有變數時會發生什麼?

  • February 12, 2022

基本上問題是如果您嘗試將相同的值分配給(狀態)變數會發生什麼:

 address someAddress = 0x...abcdef;
  
  function setSomeAddress(address _input) public {
    //What happens if someAddress already equals to _input?
    someAddress = _input;
  } 

如果你再打電話會發生什麼 setSomeAddress(0x...abcdef);

交易是否通過並且沒有任何變化或……?

這是一個完全有效的分配,因此交易將通過。契約狀態沒有任何變化。

唯一的小問題是您是否需要為儲存價值支付 gas。如果值沒有改變,我猜優化器可能足夠聰明,可以優化該行,但我真的不知道。我的猜測是,至少在字節碼級別,您需要為分配付費,即使您設置了相同的值。

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