Solidity開發(fā)基礎——數(shù)據(jù)類型
基本概念
Solidity中關于數(shù)據(jù)類型的定義如下:
Solidity是一種靜態(tài)類型語言,這意味著每個變量都需要在編譯時指定變量的類型;
Solidity中新聲明的變量總是有一個默認值,具體的默認值跟類型有關,例如bool類型的默認值為false。
數(shù)據(jù)類型
值類型
Solidity提供的基本數(shù)據(jù)類型。這些類型的變量總是通過值傳遞的,變量在函數(shù)參數(shù)或賦值語句中使用時都會被復制。有以下幾類值類型的數(shù)據(jù)類型:
布爾類型
bool
:可接受 true
和 false
兩個值,默認為 false
。
整型
int
和 uint
:分別表示有符號和無符號的整數(shù),默認為0。支持關鍵字 int8
到 int256
,以及 uint8
到 uint256
,從8位到256位,以8位為步長遞增,int
和 uint
分別是 int256
和 uint256
的別名。
地址類型
address
:包含一個20字節(jié)的值(代表一個以太坊地址的大小)。一個地址可以用來獲取余額,也可以通過轉賬的方式來轉移余額。
字節(jié)類型
bytes1
,bytes2
,...,bytes32
:字節(jié)用于存儲固定大小的字符集,長度范圍是1 ~ 32。字節(jié)的一個優(yōu)點是它使用更少的Gas,所以當我們知道數(shù)據(jù)的長度時,最好使用它。
字符串類型
string
:字符串用于存儲等于或大于一個字節(jié)的字符集,字符串的長度是動態(tài)的。
枚舉類型
enum
:創(chuàng)建用戶定義的數(shù)據(jù)類型,用于為一個整型常量分配一個名稱,這使得合約具有可讀性、可維護性和更不容易出錯。枚舉的選項可以用從0開始的無符號整數(shù)值表示。
語法如下:
enum <enum_name> { element 1, element 2, ..., element n }
引用類型
引用類型變量存儲數(shù)據(jù)的位置。在引用類型的定義中,兩個不同的變量可以引用同一個位置,其中一個變量的任何更改都會影響另一個變量。引用類型包括數(shù)組、結構和映射。關于引用類型,我們將在后面的課程中單獨介紹。
合約例子
例子1
基本數(shù)據(jù)類型的聲明與用法。
輸出:我們在Remix中編譯、部署和運行上面的合約例子,執(zhí)行結果如下圖:

例子2
枚舉類型的聲明及用法。
輸出:我們在Remix中編譯、部署和運行上面的合約例子,執(zhí)行結果如下圖:
