文章目錄
值類型與引用類型Solidity語言特點數據類型分類代碼演示值類型演示測試數據類型類型引用類型注意事項 (重點)引用類型之memory測試引用類型之storage測試值類型與引用類型
Solidity語言特點
沒有main、沒有多線程、合約與合約裡面的函數都是通過地址調用語法簡單、類似javascript不成熟,但版本更新較快,且兼容性不太好具備面向對象特性:封裝、繼承、多態數據類型分類
值類型 (值傳遞)、引用類型 (指針傳遞, 類似桌面的快捷方式)
值類型包括
布爾值整型地址(Address)定長字節數組有理數和整型枚舉類型函數引用類型
solidity沒有指針,是採用storage進行修飾,複雜類型佔有較大的空間,在拷貝時佔用空間較大。下面這些類型設置為引用
數組 (Array)結構體映射代碼演示
值類型演示
測試數據類型類型
引用類型注意事項 (重點)
值類型沒有數據位置的概念,每次賦值時都有獨立的副本!引用類型包括:數組、結構體,映射、字符串(bytes數組), 只有引用類型才有數據位置的概念三種位置,先掌握內存與存儲變量3.1 內存其生命周期只存在與函數調用期間 --> 函數調用完畢後消失
3.2 存儲: 狀態變量 —> 隨著合約部署到區塊鏈中(以太坊分布式帳本)
3.3 調用數據 ( 暫時理解成內存變量 略)
4.默認的函數參數,包括返回的參數,他們是memory默認的局部變量是storage。而狀態變量只能是storage
注意:在版本0.5.0之前,數據位置(memory/storage)可以省略,在0.5.0之後需要指定
引用類型之memory測試
引用類型之storage測試