Solidity
儲存key的映射類型時有gas費嗎?
我有一個關於映射的問題。
mapping(uint => address) public id; function setMapping() public { id[1] = msg.sender; }
和上面的程式碼一樣,如果你在映射中放了一個鍵和一個值並保存數據,我放在鍵中的數據會產生gas費嗎?
映射密鑰儲存在智能合約中的什麼位置?
是的,它需要汽油。映射儲存在
storage
關卡上。初始化 amapping
時,key
andvalue
設置為預設值(在本例中0
為 &0x0
)。因此,當您致電時,setMapping
您正在更改該數據並更新/更改有關區塊鏈成本的數據
當您創建
mapping
主要的事情時,編譯器會保留一個用於組織儲存的儲存槽。效果完全在合約的字節碼中。
public
使其創建一個返回鍵值的函式。未設置的值最初是二進制零,因為沒有寫入任何內容並且所有鍵都“存在”。
設置一個值會導致 SSTORE。費用因人而異。寫入以前為零的鍵比覆蓋非零值更昂貴。
希望能幫助到你。