Dynamic array in Solidity

2020-07-20 04:12发布

I a very new to Ethereum and Solidity development.

I just want to declare a simple array ( dynamic list ), one set function to push string in that and one get a function which returns all the strings saved in the dynamic array.

I search a lot but not able to find this simple stuff.

Thanks in advance

2条回答
Luminary・发光体
2楼-- · 2020-07-20 04:51

Here is my solution, you need experimental ABIEncoderV2 to return array of strings.

pragma solidity ^0.5.2;
pragma experimental ABIEncoderV2;

contract Test {

    string[] array;

    function push(string calldata _text) external {
        array.push(_text);
    }

    function get() external view returns(string[] memory) {
        return array;
    }
}
查看更多
Explosion°爆炸
3楼-- · 2020-07-20 04:55

If, finally, you want to interact with your smart contract with tools like web3j (for java) or web3js (javascript) in an application, working with dynamic arrays is not going to work because of some bugs in those libraries.
In this case you should serialize your output array. Same applies if you have an input array.

查看更多
登录 后发表回答