我使用remix IDE。当我调用函数get number时,我得到了这个0:uint256 []:如何更改它以返回动态数组的数字?
pragma solidity ^ 0.4.24;
合同dynamicarray {
uint …
功能是 view ,所以它无法修改状态。调用 randomnumber() 将返回一个值,但它不会改变 numbers 阵列。
view
randomnumber()
numbers
掉下来 view 来自的修饰语 randomnumber() ,它将向数组添加一个项目。 (早期返回将阻止循环重复。)
试试这个
pragma solidity ^0.4.24; contract dynamicarray { uint public constant MaxNumber = 50; uint[] numbers; function randomnumber() public returns (uint){ uint random = uint(keccak256(block.timestamp)) % MaxNumber +1; for(uint i = MaxNumber; i > numbers.length; i++){ numbers.push(random); return random; } } function getnumbers() public view returns(uint[]){ return numbers; } }