无法全局更改数组元素

时间:2017-12-06 11:26:57

标签: arrays ethereum solidity

目前正在研究以太坊。我有一个如下的可靠性文件

pragma solidity ^0.4.11;
contract ArrayOfBytes32 {
    address creator;
    bytes32[10] bytesArray; // size must be fixed


    function getArray() constant returns (bytes32[10])
    {uint8 x = 0;
        while(x < bytesArray.length)
        {
            bytesArray[x] = "myString"; 
            x++;
        }
        return bytesArray;
    }

    function getValue(uint8 x) constant returns (bytes32)
    {
        return bytesArray[x];
    }
}

在这个函数中getArray()正确返回。但是函数getValue()总是返回默认值,即0000000。 getArray()中所做的更改未反映!!任何解决方案

1 个答案:

答案 0 :(得分:2)

constant删除getArray()修饰符。 constant函数不会将状态写入区块链。