State-Variable
將相等的值分配給現有變數時會發生什麼?
基本上問題是如果您嘗試將相同的值分配給(狀態)變數會發生什麼:
address someAddress = 0x...abcdef; function setSomeAddress(address _input) public { //What happens if someAddress already equals to _input? someAddress = _input; }
如果你再打電話會發生什麼
setSomeAddress(0x...abcdef);
交易是否通過並且沒有任何變化或……?
這是一個完全有效的分配,因此交易將通過。契約狀態沒有任何變化。
唯一的小問題是您是否需要為儲存價值支付 gas。如果值沒有改變,我猜優化器可能足夠聰明,可以優化該行,但我真的不知道。我的猜測是,至少在字節碼級別,您需要為分配付費,即使您設置了相同的值。