【发布时间】:2021-04-17 09:42:07
【问题描述】:
编辑:我知道,总是调用列表中的第一个元素,这不是重点。我想拨打 numbers[0] 功能。它会重新生成新的 int。实际上代码与我的不一样,我有一个自定义类,它基于具有随机 int 的函数,我需要使用我的自定义类的列表,所以如果我在列表中使用 func 它会很棒,如何我可以每次都制作新的号码列表吗?当应用程序开始列表重新生成时,但我想当我调用列表时,它将重新生成
我想为每个打印打印新的 int 但它打印相同的 int ,我尝试了很多东西但我无法弄清楚
void main{
int ramdomint(){
final _random = new Random();
int _num = _random.nextInt(100);
return _num;
}
List<int> numbers=[ramdomint(),ramdomint(),ramdomint()];
void printNums(){
for(var i=0;i<3;i++){
List<int> newNumbers =new List.from(numbers); //what can i use for this?
print(newNumbers[0]); //edit:i dont want [i], iwant to use ewNumbers[0] for new int for each time
}
}
printNums();
// expected new int for each but same one
}
朋友的解决方案:
import 'dart:math';
int get ramdomint => Random().nextInt(100);
List<int> get numbers => [ramdomint, ramdomint, ramdomint];
void main() {
for (var i = 0; i < 3; i++) {
print(numbers[0]);
}
}
【问题讨论】:
-
其他答案指出了您的主要问题。此外,您不应在每次需要随机数时生成新的随机数生成器(即
Random实例)。相反,您应该创建一个共享的Random实例;这可以保证您不会意外创建两个具有相同种子的 RNG。
标签: dart