一、定长字节数组

与java的byte类型不同,solidity在定义字节类型时,可以指定字节的长度,但这个长度是固定的。 同整型一样,可以通过bytes1bytes2bytes3, …, bytes32来定义字节数组。 注意, bytebytes1 的别名, 那bytes呢? 这是byte[]的同义词。 也可以将 byte[] 当作字节数组使用,但这种方式非常浪费存储空间,准确来说,是在传入调用时,每个元素会浪费 31 字节, 更好地做法是使用 bytes

二、初始值

注意,bytesM类型的初始值,不是Null,而是将各个字段置零。

pragma solidity ^0.4.24;


contract BytesType {
    function initVaue() public pure returns(bytes1, bytes2, bytes8){
        bytes1 a ;
        bytes2 b ;
        bytes8 c ;
        return (a, b, c);
    }
  
}

返回值:

0: bytes1: 0x00
1: bytes2: 0x0000
2: bytes8: 0x0000000000000000

三、运算符

四、成员变量

五、十六进制常量(Hexadecimal literals)

十六进制常量,以关键字hex打头,后面紧跟用单或双引号包裹的字符串,内容是十六进制字符串,如hex”001122ff”。 它的值会用二进制来表示。

十六进制常量和字符串常量类似,也可以转换为字节数组。


感谢您对本文的关注,如果您对区块链技术有兴趣,可以加入我们一起探讨, 请扫码关注“可可链”的微信公众号,并留言“加入可可链”。

本文欢迎转载,转载时请注明本文来自 微信公众号“可可链”。