Arrays
分配數組參數
嘗試全域分配數組參數
bytes32[] params; (params[0], params[1]) = ("p1", "p2");
結果是
ParserError: Function, variable, struct or modifier declaration expected.
移入函式時不再出現解析器錯誤;但是,當呼叫該函式時,會發生以下錯誤
Error: VM Exception while processing transaction: invalid opcode
請指教。
第一個錯誤是因為您不能在函式之外進行分配。
將其移至函式是正確的,但您正在寫入數組末尾。
params
以長度 0 開頭,但您正在嘗試寫入它。您可以通過直接設置長度來解決此問題:
params.length = 2; (params[0], params[1]) = ("p1", "p2");
我認為使用起來更直接
push
:params.push("p1"); params.push("p2");