调用映射时 Solidity 函数错误的参数数量无效 getter
Invalid number of arguments to Solidity function error when calling mapping getter
具有如下映射:
mapping(address => uint[]) public myMapping
自动创建一个 getter。但是,当我这样调用 getter 时:myMapping(anAddress)
我收到以下错误:
Error: Invalid number of arguments to Solidity function
如何解决这个问题?
创建的getter是myMapping(anAddress, anIndex)
而不是myMapping(anAddress)
。所以没办法一下子拿到所有的数组。相反,调用者应该提供一个索引作为第二个参数,以获取所提供索引处的元素。
示例:
假设uint数组有四个元素anAddress
,分别为2、3、5、7:
myMapping(anAddress, 2)
returns 5. 和 myMapping(anAddress, 3)
returns 7.
具有如下映射:
mapping(address => uint[]) public myMapping
自动创建一个 getter。但是,当我这样调用 getter 时:myMapping(anAddress)
我收到以下错误:
Error: Invalid number of arguments to Solidity function
如何解决这个问题?
创建的getter是myMapping(anAddress, anIndex)
而不是myMapping(anAddress)
。所以没办法一下子拿到所有的数组。相反,调用者应该提供一个索引作为第二个参数,以获取所提供索引处的元素。
示例:
假设uint数组有四个元素anAddress
,分别为2、3、5、7:
myMapping(anAddress, 2)
returns 5. 和 myMapping(anAddress, 3)
returns 7.