如何 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;
}
}
我正在尝试 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;
}
}