08 對映與結構體

2021-10-03 23:21:51 字數 874 閱讀 5471

solidity提供struct來定義自定義型別,結構體中只包含資料型別不能包含變數和函式。

對映可以視作 雜湊表 ,它們在實際的初始化過程中建立每個可能的 key, 並將其對映到位元組形式全是零的值:乙個型別的 預設值。然而下面是對映與雜湊表不同的地方: 在對映中,實際上並不儲存 key,而是儲存它的 keccak256 雜湊值,從而便於查詢實際的值。

正因為如此,對映是沒有長度的,也沒有 key 的集合或 value 的集合的概念。

對映只能是 儲存 的資料位置,因此只允許作為狀態變數 或 作為函式內的 儲存 引用 或 作為庫函式的引數。 它們不能用合約公有函式的引數或返回值。

可以將對映宣告為 public,然後來讓 solidity 建立乙個 getter 函式。 _keytype 將成為 getter 的必須引數,並且 getter 會返回 _valuetype

pragma solidity >=

0.6.0

<

0.7.0

;// 定義乙個結構體(類似c語言結構體,只有資料型別沒有函式和事件)

struct person

// 定義乙個對映(狀態變數)

(address => person)

public permap;

// 定義乙個函式,讓呼叫這位址與個人資訊進行對映

function

setperson

(string memory name,uint age)

public);

}function

getperson()

public view returns

(string memory name,uint age)

}

C 基礎入門 08結構體

結構體屬於使用者自定義的資料型別,允許使用者儲存不同的資料型別 語法 struct 結構體名 通過結構體建立變數的方式有三種 示例 結構體定義 struct student stu3 結構體變數建立方式3 int main cout 姓名 stu2.name 年齡 stu2.age 分數 stu2....

C 基礎程式設計 08 結構體

結構體屬於使用者自定義的資料型別,允許使用者儲存不同的資料型別。語法 struct 結構體名 通過結構體建立變數的方式 1 struct 結構體名 變數名 2 struct 結構體名 變數名 3 定義結構體時順便建立變數 include using namespace std include 1.建...

驅動學習7 led動態對映與結構體

include module init module exit include init exit include register chrdev file operations include copy from user copy to user include ioremap include ...