最后,如果您希望使用类似工具与智能合约进行互动 web3j (对于java)或 web3js (javascript)在一个应用程序中,使用动态数组不会起作用,因为这些库中存在一些错误。 在这种情况下,您应该序列化您的输出数组。如果您有输入数组,则同样适用。
web3j
web3js
这是我的解决方案,你需要 experimental ABIEncoderV2 返回字符串数组。
experimental ABIEncoderV2
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; } }