Solidity語言學習筆記————13、固定大小位元組陣列

FLy_鵬程萬里發表於2018-06-21

固定大小位元組陣列的構建

Solidity中固定大小的位元組陣列可以通過關鍵字“byte+n”來實現,其中n為該陣列的儲存空間的大小,其單位為位元組。

例如:byte6  a————表示一個6個位元組大小的陣列a。需要注意的是我們經常看到的“byte”就是“bytes1”。

例項如下:

pragma solidity ^0.4.0;

contract test{

    //資料用十六進位制表示為: 0x6a667575856568757e

    byte public a = 0x6a; 
    bytes1 public b = 0x6a; 
    bytes2 public c = 0x6a66; 
    bytes3 public d = 0x6a6675; 
   
    // ...

    bytes8 public e = 0x6a66757585656875; 
    bytes9 public f = 0x6a667575856568757e;

}


說明:當你要儲存的資料遠大與陣列當中可用的空間的時候會直接報錯!

固定大小位元組陣列的長度不可變

對於固定大小的位元組陣列而言,他們的陣列長度值是一個恆定的值,無法通過賦值來進行修改,例如:

pragma solidity ^0.4.0;

contract test{

    bytes6 info=0x666666666666;
    function length(){
        info.length=100;
    }
}


固定大小位元組陣列的內容位元組不可變

對於固定大小的位元組陣列而言,一旦該陣列完成初始化之後,其內容是不可修改的。例如:

pragma solidity ^0.4.0;

contract test{

    bytes6 info=0x666666666666;
    function length(){
        info[0]=6;
    }
}



後續內容更精彩,敬請期待!


相關文章