Arrays
字元串記憶333記憶體不能隱式轉換為預期類型 bytes32儲存參考
我有以下(bytes32 類型的數組):
bytes32[] public allTokenSymbols = ["0x4554480000000000000000000000000000000000000000000000000000000000", "0x4c54430000000000000000000000000000000000000000000000000000000000", "0x5852500000000000000000000000000000000000000000000000000000000000"];
這給出了以下錯誤:
字元串記憶
$$ 3 $$記憶體不能隱式轉換為預期類型 bytes32$$ $$儲存參考
這應該怎麼做?我希望數組包含“ETH”、“LTC”和“XRP”的 bytes32。
這個錯誤是有道理的……在賦值的右側,你有一個字元串數組,每個字元串都太大而無法放入
bytes32
。(每個字元串的長度為 66 個字元。)鑑於您的意圖,即儲存“ETH”、“LTC”和“XRP”的表示,我相信這段程式碼可以滿足您的需求:
bytes32[] public allTokenSymbols = [ bytes32(0x4554480000000000000000000000000000000000000000000000000000000000), bytes32(0x4c54430000000000000000000000000000000000000000000000000000000000), bytes32(0x5852500000000000000000000000000000000000000000000000000000000000)];
請注意,我使用的是十六進制數字而不是字元串,並且我明確地將每個數字轉換為
bytes32
.