正常我們在設計Solidty函數的時候經常要用到數組,那麼在調用remix做測試的時候,會經常報“Error: expected array value (arg="", coderType="array", value="[0x1,0x2]", version=4.0.44)”這樣的錯誤。
為什麼會出現?怎麼解決?
首先,我們先看錯誤是什麼錯誤,錯誤的意思就是說,期望的是數組,你的值不是數組。看看我的代碼。
function multiProposal( byte[] memory senderCert, byte[] memory caCert, bool isAdd) public {
if (isAdd == true){c1 = senderCert;c2 = caCert;}
}
很明顯,希望的是傳入兩個byte數組。經過多次測試,發現在調用的時候要這樣寫。
["0x22","0x11"]
這個是remix傳入數組必須要用的就是,[] 另外數組,裡面的元素必須是“” 雙引號。另外如果是byte或者address都必須是hex,也就是要加0x。
閱讀更多 Neo老師 的文章