如何使用Dart生成随机数?
当前回答
使用dart:math中的随机类:
import 'dart:math';
main() {
var rng = Random();
for (var i = 0; i < 10; i++) {
print(rng.nextInt(100));
}
}
在撰写本文时,这段代码已经使用Dart VM和dart2js进行了测试。
其他回答
另一种解决方案可以使用以下代码random。这个类应该与种子一起使用。它提供了一个熟悉的。net接口,它是从mono的Random.cs移植过来的。此代码可能不是加密安全的,并且没有经过统计测试。
一个安全的随机API刚刚添加到dart:math
new Random.secure()
飞镖:数学 Random添加了一个安全构造函数,返回加密安全的 随机发生器,从熵源提供的读取 为每个生成的随机值嵌入。
它委托给浏览器中的window.crypto.getRandomValues()和操作系统(如服务器上的urandom)
使用dart:math中的随机类:
import 'dart:math';
main() {
var rng = Random();
for (var i = 0; i < 10; i++) {
print(rng.nextInt(100));
}
}
在撰写本文时,这段代码已经使用Dart VM和dart2js进行了测试。
使用'dart:math'库中的类Random()。
import 'dart:math';
void main() {
int max = 10;
int RandomNumber = Random().nextInt(max);
print(RandomNumber);
}
这将生成并打印一个从0到9的随机数。
让我用一个实际的例子来回答这个问题,这个例子是一个简单的骰子滚动应用程序,当点击时,它会在屏幕上随机调用6个骰子面部图像中的一个。
首先声明一个生成随机数的变量(别忘了导入dart.math)。然后声明一个变量,将约束在1到6之间的初始随机数解析为Integer。
为了只初始化一次,两个变量都是静态私有的。这不是一个很大的问题,但如果你必须初始化一大堆随机数,这将是一个很好的实践。
static var _random = new Random();
static var _diceface = _random.nextInt(6) +1 ;
现在创建一个带有ClipRRect的手势检测小部件,以便在点击时将六个骰子面部图像中的一个返回到屏幕上。
GestureDetector(
onTap: () {
setState(() {
_diceface = _random.nextInt(6) +1 ;
});
},
child: ClipRRect(
clipBehavior: Clip.hardEdge,
borderRadius: BorderRadius.circular(100.8),
child: Image(
image: AssetImage('images/diceface$_diceface.png'),
fit: BoxFit.cover,
),
)
),
每次点击屏幕时,都会生成一个新的随机数,并引用该数字来选择所选择的骰子面部图像。
骰子滚动应用程序使用随机数在镖