Solidity

儲存key的映射類型時有gas費嗎?

  • October 5, 2022

我有一個關於映射的問題。

mapping(uint => address) public id;

function setMapping() public {
   id[1] = msg.sender;
}

和上面的程式碼一樣,如果你在映射中放了一個鍵和一個值並保存數據,我放在鍵中的數據會產生gas費嗎?

映射密鑰儲存在智能合約中的什麼位置?

是的,它需要汽油。映射儲存在storage關卡上。初始化 amapping時,keyandvalue設置為預設值(在本例中0為 & 0x0)。因此,當您致電時,setMapping您正在更改該數據並更新/更改有關區塊鏈成本的數據

當您創建mapping主要的事情時,編譯器會保留一個用於組織儲存的儲存槽。效果完全在合約的字節碼中。

public使其創建一個返回鍵值的函式。

未設置的值最初是二進制零,因為沒有寫入任何內容並且所有鍵都“存在”。

設置一個值會導致 SSTORE。費用因人而異。寫入以前為零的鍵比覆蓋非零值更昂貴。

希望能幫助到你。

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