Arrays

字元串記憶333記憶體不能隱式轉換為預期類型 bytes32儲存參考

  • December 14, 2017

我有以下(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.

引用自:https://ethereum.stackexchange.com/questions/33362