如何 return 嵌套数组

How to return a nested array on solidity

我正在尝试 return 嵌套数组 on solidity 错误消息说

"browser/HISTORYMultipleStateMach.sol:22:16: TypeError: Index expression cannot be omitted. return myArray[]; ^-------^" "browser/HISTORYMultipleStateMach.sol:22:16: TypeError: Index expression cannot be omitted. return myArray[]; ^-------^" Can someone tell me what is wrong? Thank you enum State{ A, B, C }

    State[] curState;
    State[][] myArray;

    uint i=0;
    constructor(uint Machines)public{
        for(i=0;i<Machines;i++){
            curState.push(State.A);
            myArray.push(curState);
        }enter code here
    }


    function historyOfStateMachine() public{
        return myArray[];
    }


   function historyOfStateMachine() public{
        return myArray[];
    } 

为了return整个数组,你应该删除return myArray[];

中的[]

此外,还不能 return two levels of dynamic arrays

version 0.4.19 of solidity 开始,您可以激活对任意嵌套的实验性支持 使用指令 pragma experimental ABIEncoderV2; 的数组。在这种情况下,您的代码将如下所示:

pragma solidity ^0.4.19;
pragma experimental ABIEncoderV2;

contract MyContract {
    enum State{ A, B, C }

    State[] curState;
    State[][] myArray;

    uint i=0;

    constructor(uint Machines)public{
        for(i=0;i<Machines;i++){
            curState.push(State.A);
            myArray.push(curState);
        }
    }

    function historyOfStateMachine() public view returns (State[][]) {
        return myArray;
    }

}