ethereum - Solidity - 将随机数存储到动态数组并返回数组
问题描述
我使用混音 IDE。当我调用函数 get number 我得到这个 0: uint256[]:
如何更改它以返回动态数组的数字?
pragma 稳固性 ^0.4.24;
contract dynamicarray {
uint public constant MaxNumber = 50;
uint[] numbers;
function randomnumber() public view returns (uint){
uint random = uint(sha3(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;
}
}
解决方案
该函数是 a view
,因此它不能修改状态。调用randomnumber()
将返回一个值,但不会更改numbers
数组。
从 中删除view
修饰符randomnumber()
,它将向数组中添加一项。(提前返回将防止循环重复。)
推荐阅读
- clojure - 如何在重新框架模板中运行后端服务器/代码?
- asp.net-mvc - 如何在 ActionFilterAttribute 中注入依赖
- swift - 如何在 Swift 中每年重复倒计时到某个日期
- node.js - 如何在 Azure 应用服务应用中查看 console.log() 输出
- artifactory - JFrog REST api 客户端应用程序无法构建缺少 org.apache.commons.* 包
- javascript - Javascript 如何从 HTML 表格中生成的单元格中获取值?
- ruby - 仅当我的 jar 文件在厨师中更新时如何解压文件?
- python - 将值列表转换为数据框时结果不正确
- javascript - 父窗口未从 Microsoft Edge 中的子窗口更新
- c - 插入节点时返回 void 与返回链表有什么区别或权衡?