solidity學習(七)-- 資料型別
solidity官方文件太多了,我今天實在不想自己總結了,所以這部分的學習引用了CSDN的:
https://blog.csdn.net/lj900911/article/details/83037625
感謝這位博主。
0x01 solidity數據型別分類
值型別:布林型別(bool)、整型(int)、地址型別(address)、定長位元組陣列(bytes)、列舉型別(enum)、函式型別(function);
引用型別:字串(string)、陣列(array)、結構體(structs)、對映(mapping)、不定長位元組陣列(bytes)
0x02 具體說明
【下次做一個表格 今天先佔個坑】
1、整型:
solitity中的整型與JavaScript不同,該型別支援有符號(int)或無符號(uint)兩種型別,也支援從uint8到uint256,以及從int8到int256等多種型別。所以長度是 2**8~2**256位元組。
2、地址型別(address)
以太坊中的地址的長度為20位元組,一位元組等於8位,一共160位,所以address其實亦可以用uint160來宣告。
3、列舉型別(enum)
一個變數可能的取值都知道,就可以把它定義為列舉型,然後把變數的值一一列出來,令變數的值只限於列舉出來的值的範圍內。例如月份、星期幾、天氣等情況,列舉型別用enum關鍵字來定義。
enum weekday{sun,mon,tue,wed,the,fri,sat};
4、結構體(struct)
5、對映
mapping(_KeyType => _ValueType)
mapping不是資料型別,mapping(address => uint)才是用來宣告變數balances的資料型別。
6、陣列
solidity中陣列可以分為可變陣列和不可變陣列。
7、字串、動態位元組陣列和固定位元組陣列 三者相互轉換
珍惜時間,只錯一次