Solidity
Solidity:替代返回(字元串)
我有一個映射
mapping (address => string[]) myMap;
如何返回與給定地址關聯的所有字元串的列表?
我知道在 Solidity 中不能返回字元串數組,但我需要做的是
function get(address _addr) public returns (string[]){ return myMap[_addr]; }
如果您更改 bytes32 的字元串並使數組的長度固定,您將能夠做到這一點。例如,對於 10 個元素的數組。
mapping (address => bytes32[10]) myMap; function get(address _addr) public returns (bytes32[10]){ return myMap[_addr]; }
問題是您需要將字元串編碼為 bytes32。
另一種選擇是使用以下方法啟動實驗性 ABI 編碼器:
pragma experimental ABIEncoderV2; pragma solidity 0.4.24; contract mycontract{ mapping (address => string[]) myMap; function get(address _addr) public returns (string[]){ return myMap[_addr]; } }
這是實驗性的,不建議用於生產。
希望這可以幫助