以太坊(十一)Solidity数据类型-定长字节数组(Fixed

2018-03-18  本文已影响70人  duanyu

定长字节数组(Fixed-size byte arrays)

定长字节数组可以通过 bytes1, bytes2, bytes3, …, bytes32来进行声明。
byte 默认就是 `bytes1

使用指定长度的命名方式 bytes,不是 byte,多一个s,不然编译报错Error: Identifier not found or not unique

操作运算符

成员函数

pragma solidity ^0.4.0;

contract C {

    bytes3 public name = "wsj";

    function gByteLength() constant returns (uint) {

        return name.length;
    }

}

不可变深度解析

长度不可变

pragma solidity ^0.4.0;

contract C {
    
    
    bytes3  name = "wsj";
    
    function setNameLength(uint length) {
    
        //编译错误
        name.length = length;
    }
    
}

内部字节不可修改

pragma solidity ^0.4.0;

contract C {
    
    bytes3  name = "wsj"
    
    function setNameFirstByte(byte b) {
         // 编译错误
        name[0] = b;
    }
    
}

总结

bytesI(1 <= I <= 32)可以声明固定字节大小的字节数组变量,一旦声明,内部的字节和字节数组长度不可修改,当然可以通过索引读取(只读)对应索引的字节,或者通过length读取字节数组的字节数。

上一篇下一篇

猜你喜欢

热点阅读