固定大小字节数组的构建
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;
}
}