原文標題:《 Solidity 極簡入門: 5. 引用類型, array, struct 》
原文作者:0xAA
我最近在重新學 solidity,鞏固一下細節,也寫一個「Solidity 極簡入門」,供小白們使用(編程大佬可以另找教程),每週更新 1-3 講。
所有代碼開源在 github :github.com/AmazingAng/WTFSolidity
這一講,我們將介紹 solidity 中的兩個重要變量類型:數組(array)和結構體(struct)
數組(Array)是 solidity 常用的一種變量類型,用來存儲一組數據(整數,字節,地址等等)。數組分爲固定長度數組和可變長度數組兩種:
固定長度數組:在聲明時指定數組的長度。用 T[k] 的格式聲明,其中 T 是元素的類型,k 是長度,例如:

可變長度數組:在聲明時不指定數組的長度。用 T[] 的格式聲明,其中 T 是元素的類型,例如(bytes 比較特殊,是數組,但是不用加 []):

在 solidity 裏,創建數組有一些規則:
對於 memory 可變長度數組,可以用 new 操作符來創建,但是必須聲明長度,並且長度不能改變。例子:

數組字面常數是寫作表達式形式的數組,並且不會立即賦值給變量,例如 [uint(1),2,3](需要聲明第一個元素的類型,不然默認用存儲空間最小的類型)如果創建的是 dynamic array,你需要一個一個元素的賦值。

length: 數組有一個包含元素數量的 length 成員,內存數組的長度在創建後是固定的。
push():可變長度數組 和 bytes 擁有 push() 成員,可以在數組最後添加一個 0 元素。
push(x): 可變長度數組 和 bytes 擁有 push(x) 成員,可以在數組最後添加一個 x 元素。
pop: 可變長度數組 和 bytes 擁有 pop 成員,可以移除數組最後一個元素。
Solidity 支持通過構造結構體的形式定義新的類型。創建結構體的方法:

給結構體賦值的兩種方法:

這一講,我們介紹了 solidity 中數組(array)和結構體(struct)的基本用法。下一講我們將介紹 solidity 中的哈希表——映射(mapping)。
原文鏈接
歡迎加入律動 BlockBeats 官方社群:
Telegram 訂閱群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方帳號:https://twitter.com/BlockBeatsAsia