调用映射时 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.