区块链——Solidity智能合约基础实战(七)

                                              区块链——Solidity智能合约基础实战(七)

                                                              动态字节数组

动态字节数组与静态字节数组的区别在于是否能修改数组的长度及内容

代码段1:

pragma solidity ^0.4.0;

 

contract DynamicByte{

   

    bytes public name = new bytes(2);

   

    function InitName(){

       

        name[0] = 0x7a;

        name[1] = 0x68;

       

    }

   

    function getLength() view returns(uint){

       

        return name.length;

       

    }

   

    function ChangeName(){

       

        name[0] = 0x88;

       

    }

   

}

首先调用InitName方法,然后调用getLength方法及name方法,效果如下:

区块链——Solidity智能合约基础实战(七)

先调用chageName方法,再调用getLength方法及name方法,效果如下:

区块链——Solidity智能合约基础实战(七)

代码段2:

function changeLength(){

        name.length = 5;

    }

点击getLenggth再changeLength再getLength结果如下;

区块链——Solidity智能合约基础实战(七)

注意:在solidity中,长度是在原长度的右侧进行填充

代码段3:

function pushtest(){

        name.push(0x99);//可在原内容之后增加99,并将长度改变

    }

调用前:

区块链——Solidity智能合约基础实战(七)

调用后:

区块链——Solidity智能合约基础实战(七)