Solidity

基本映射問題

  • September 23, 2022

非常基本的問題,但希望能幫助您理解這一點。我不太了解下面映射中 += 運算符背後的邏輯。請看下面的程式碼

function getBalance() public view returns(uint) {
       return address(this).balance;
   }

   function sendMoney() public payable {
       balanceReceived[msg.sender] += msg.value;
   }

您如何在邏輯上添加和分配並擁有 - balanceReceived

$$ msg.sender $$=餘額已收到$$ msg.sender $$+ 味精值? 我確定我看錯了,但餘額已收到

$$ msg.sender $$是一個地址,那麼如何將它添加到 msg.value 的 uint 值中?

沒有看到映射定義我猜它就像

mapping(address => uint) balanceReceived;

這意味著balanceReceived[msg.sender]不是地址,而是地址映射到的內容,這是一個 uint

balanceReceived應該是類型的mapping(address => uint)msg.sender是類型的addressmsg.value是類型的uint

uint 值也是如此balanceReceived[msg.sender],但不是地址。

那有意義嗎?

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