Solidity
如何在 Solidity 中返回動態字元串數組?
如何返回動態字元串數組?我遇到了序列化和反序列化。如何序列化和反序列化動態字元串數組?
pragma solidity ^0.5.0; contract Abc{ string[] st; function add(string memory newValue) public { st.push(newValue); } // return st
從 Solidity 開始
0.7.5
,ABIEncoderV2
不再是實驗性的,可以使用 pragma 指令進行選擇。這為從函式返回動態字元串數組提供了本機支持。
pragma solidity ^0.8.2; pragma abicoder v2; contract Abc { string[] st; function add(string memory newValue) public { st.push(newValue); } function getSt() public view returns (string[] memory) { return st; } }
附帶說明一下,從 Solidity 開始
0.8.0
abicoder v2
預設啟用,因此可以省略 pragma 指令。
實際上,solidity 不支持返回此處描述的字元串數組:
您可以採用此處描述的解決方法來修復它: