用ganache测试的,循环超过10000就卡了,提示VM Exception while processing transaction: out of gas,难道pure也会和gaslimit去比较?实际应用中,遇到大数组应该怎么办?有没有建议
function test(uint256 max) public pure returns(uint256){ uint256 i=0; uint256 j=0; for(i=0;i<max;i++){ j=i; } return j; }
pure 和 view 函数同样有gaslimit 的限制, 只是 gas price 为 0
可以采用分步计算, 例如传入当前的 sum, 起始下标, 结束下标, 使用返回计算结果,再次计算。