Solidity

分配新所有者

  • October 4, 2022

我正在編寫一個聯繫人,該聯繫人按以下方式設置新所有者,但無法理解為什麼 setNewOwner 函式需要成為視圖函式。我會認為分配一個新的所有者會改變狀態,所以不需要可見性功能?

mapping (address => uint) balanceAllowance;
address public owner; 

constructor () {
   owner = msg.sender;
}

function setNewOwner (address _address) public view {
   owner == _address;
}

因為您將比較運算符放在==那裡,所以您應該使用=.

更多解釋

由於您使用了==函式檢查是否owner_address等於並且沒有進行任何更改,因此您的編輯器建議您將其更改為查看。如果你在return下面放了一個

function setNewOwner (address _address) public view {
   return owner == _address;
}

它會返回 true。

我想補充一點,您應該注意到任何人都可以呼叫此函式並在您切換到後設置它的所有者owner == _addressTo owner = _address

考慮使用msg.sender

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