Solidity極簡入門第六講:映射類型mapping

本文是Solidity極簡入門系列的第六講,重點介紹了Solidity中的映射類型(Mapping),這是一種通過鍵(Key)查詢對應值(Value)的哈希表結構。以下是核心內容:

  • 映射定義:映射的聲明格式為 mapping(_KeyType => _ValueType),其中 _KeyType 只能是Solidity默認類型(如uint、address等),而 _ValueType 可使用自定義類型。

  • 映射規則

    • 規則1:_KeyType 不可使用自定義結構體,否則會報錯。
    • 規則2:映射的存儲位置必須是 storage,因此僅適用於合約狀態變量或函數中的 storage 變量,不可用於 public 函數的參數或返回結果。
    • 規則3:若映射聲明為 public,Solidity會自動生成一個可通過 Key 查詢 Valuegetter 函數。
    • 規則4:新增鍵值對的語法為 _Var[_Key] = _Value,其中 _Var 是映射變量名。
  • 總結:本講詳解了映射的基本用法與限制,為後續學習控制流(如if-else、while等)奠定基礎。所有代碼已開源於GitHub。

總結

原文: 《Solidity 極簡入門: 6. 映射類型 mapping》
作者:0xAA

我最近在重新學solidity,鞏固一下細節,也寫一個「Solidity 極簡入門」,供小白們使用(編程大佬可以另找教程),每週更新1-3 講。

所有代碼開源在github :github.com/AmazingAng/WTFSolidity

這一講,我們將介紹solidity 中的哈希表:映射(Mapping)類型。

映射Mapping

在映射中,人們可以通過鍵(Key)來查詢對應的值(Value),比如:通過一個人的id 來查詢他的錢包地址。

聲明映射的格式為 mapping(_KeyType => _ValueType),其中_KeyType 和_ValueType 分別是Key 和Value 的變量類型。例子:

Solidity極簡入門第六講:映射類型 mapping

映射的規則

規則1:映射的_KeyType 只能選擇solidity 默認的類型,比如uint,address 等,不能用自定義的結構體。而_ValueType 可以使用自定義的類型。下面這個例子會報錯,因為_KeyType 使用了我們自定義的結構體:

Solidity極簡入門第六講:映射類型 mapping

規則2:映射的存儲位置必須是storage,因此可以用於合約的狀態變量,函數中的stoage 變量。不能用於public 函數的參數或返回結果中。

規則3:如果映射聲明為public,那麼solidity 會自動給你創建一個getter 函數,可以通過Key 來查詢對應的Value。

規則4:給映射新增的鍵值對的語法為_Var[_Key] = _Value ,其中_Var 是映射變量名,_Key 和_Value 對應新增的鍵值對。例子:

Solidity極簡入門第六講:映射類型 mapping

總結

這一講,我們介紹了solidity 中哈希表——映射(Mapping)的用法。至此,我們已經學習了所有常用變量種類,之後我們會學習控制流if-else, while 等。

分享至:

作者:0xAA

本文為PANews入駐專欄作者的觀點,不代表PANews立場,不承擔法律責任。

文章及觀點也不構成投資意見

圖片來源:0xAA如有侵權,請聯絡作者刪除。

關注PANews官方賬號,一起穿越牛熊
推薦閱讀
38分鐘前
4小時前
4小時前
6小時前
9小時前
14小時前

熱門文章

行業要聞
市場熱點
精選讀物

精選專題

App内阅读