更新时间:2022-10-23 16:59:44
尝试在不传递任何值的情况下调用people()
函数(从Remix IDE)时发生错误。
由于People[] public people
是公共属性,因此它autogenerates是编译期间的getter函数。但是因为它是一个数组,所以getter函数需要一个uint256
参数来指定要检索的数组的索引。
当您传递空字符串时,Remix会尝试将其编码到BigNumber
实例中,但失败了。只有当您传递数组的(现有)索引时,它才能正常工作:
如果您希望在一次调用中获取整个数组,则需要创建一个单独的getter函数:
function getAllPeople() public view returns (People[] memory) {
return people;
}