Flutter随机数生成插件randomness的使用
Flutter 随机数生成插件 randomness 的使用
开始使用
在 pubspec.yaml
文件中添加以下依赖:
dependencies:
randomness: ^0.1.0
然后在 Dart 文件中导入:
import 'package:randomness/randomness.dart';
使用说明
随机数生成
以下是等价于 Random().nextInt(5)
的几种方式。集合 include
和 exclude
可以包含点或区间,并使用方括号表示。
Randomness.randomInt(include: {0,1,2,3,4}) // 等同于 [0, 4]
Randomness.randomInt(include: {[0,4]}) // 等同于 [0, 4]
Randomness.randomInt(include: {0,1,[2,4]}) // 等同于 [0, 1] 和 [2, 4]
Randomness.randomInt(include: {[0,100]}, exclude: {5,[6,100]}) // 等同于 [0, 100],但排除了 5 和 [6, 100]
默认情况下,范围是从 1 到 1000(包括 1 和 1000):
Randomness.randomInt()
// 输出例如:681
加密安全的随机数
从 1 到 100 区间内生成加密安全的随机整数:
Randomness.randomInt(include: {[1,100]}, cryptographicallySecure: true)
// 输出例如:30
生成加密安全的随机浮点数:
Randomness.randomDouble(min: -3, max: -1, cryptographicallySecure: true)
// 输出例如:-1.7392379311552753
带权重的概率
给定权重。有 2/3 的概率为 0,1/3 的概率为 1、2、3 或 4:
Randomness.randomInt(include: {0,1,2,3,4}, weights: {0: 2, everythingElse: 1})
忽略不在权重中的元素。这将始终返回 0:
Randomness.randomInt(include: {0,1,2,3,4}, weights: {0:1})
随机字符串生成
默认长度为 10,默认不生成空格:
Randomness.randomString()
/*
输出例如:-((f)4$=r4
*/
字符串可以包含数字、大写字母、小写字母、符号和空格。这将生成数字和空格:
Randomness.randomString(length: 100, includeSpaces: true, excludeSymbols: true, excludeUppercase: true, excludeLowercase: true)
// 输出例如:3828 5491 304 0065273406 9 54745452 657207928 4469 078258338317555697369931555479 28159170 32561895
加密安全的字符串,其中一半为 A:
Randomness.randomString(length: 50, cryptographicallySecure: true, weights: {'A': 1, everythingElse: 1})
// 输出例如:ACAAAAAABAAAp3litAAAAAAwAAAAAAl$AEe4IAAtAA*A#)AA6[
随机列表元素选择
从列表中随机选择一个元素,权重可能对某些数据类型不起作用:
Randomness.randomFromList([{1,2}, 'a', 3], weights: {'a': 1, everythingElse: 1}, cryptographicallySecure: true)
// 输出例如:a
随机 n 位数生成
生成随机 n 位数。由于解析会忽略开头的 0 并且无法解析非常大的整数,所以返回的是字符串。以下示例给出平均一半为 4,另一半为 5、6、7、8 或 9:
Randomness.randomNDigits(numberOfDigits: 100, excludeDigits: {0,1,2,3}, weights: {4:1, everythingElse:1})
// 输出例如:4944445978444496449444486964474547474444767454648456444448886854446774444444648654448475857444494895
示例代码
以下是一个完整的示例代码,展示了如何使用 randomness
插件生成各种类型的随机数和字符串:
import 'package:randomness/randomness.dart';
import 'dart:core';
/// 运行程序,比较控制台日志与代码
void main() {
print('''
相当于 Random().nextInt(5)
${Randomness.randomInt(include: {0,1,2,3,4})}
${Randomness.randomInt(include: {[0,4]})}
${Randomness.randomInt(include: {0,1,[2,4]})}
${Randomness.randomInt(include: {[0,100]}, exclude: {5,[6,100]})}
默认范围是 1 到 1000(包括 1 和 1000)
${Randomness.randomInt()}
1 到 100 区间内生成加密安全的随机整数
${Randomness.randomInt(include: {[1,100]}, cryptographicallySecure: true)}
给定权重。有 2/3 的概率为 0,1/3 的概率为 1、2、3 或 4:
${Randomness.randomInt(include: {0,1,2,3,4}, weights: {0: 2, everythingElse: 1})}
忽略不在权重中的元素。这将始终返回 0。
${Randomness.randomInt(include: {0,1,2,3,4}, weights: {0:1})}
默认长度为 10,默认不生成空格。
${Randomness.randomString()}
字符串可以包含数字、大写字母、小写字母、符号和空格。这将生成数字和空格。
${Randomness.randomString(length: 100, includeSpaces: true, excludeSymbols: true, excludeUppercase: true, excludeLowercase: true)}
加密安全的字符串,其中一半为 A
${Randomness.randomString(length: 50, cryptographicallySecure: true, weights: {'A': 1, everythingElse: 1})}
加密安全的随机双精度浮点数
${Randomness.randomDouble(min: -3, max: -1, cryptographicallySecure: true)}
从列表中随机选择一个元素。权重可能对某些数据类型不起作用。
${Randomness.randomFromList([{1,2}, 'a', 3], weights: {'a': 1, everythingElse: 1}, cryptographicallySecure: true)}
随机 n 位数生成。由于解析会忽略开头的 0 并且无法解析非常大的整数,所以返回的是字符串。以下示例给出平均一半为 4,另一半为 5、6、7、8 或 9
${Randomness.randomNDigits(numberOfDigits: 100, excludeDigits: {0,1,2,3}, weights: {4:1, everythingElse:1})}
''');
}
更多关于Flutter随机数生成插件randomness的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter随机数生成插件randomness的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中生成随机数可以使用Dart的内置库 dart:math
,而不需要使用额外的插件。dart:math
库提供了生成随机数的功能。以下是一个简单的示例,展示如何在Flutter中生成随机数。
使用 dart:math
生成随机数
-
导入
dart:math
库首先,你需要在你的Dart文件中导入
dart:math
库:import 'dart:math';
-
生成随机数
你可以使用
Random
类来生成随机数。以下是一个简单的示例,生成一个0到99之间的随机整数:import 'dart:math'; void main() { Random random = Random(); int randomNumber = random.nextInt(100); // 生成0到99之间的随机整数 print('Random Number: $randomNumber'); }
-
生成随机浮点数
如果你需要生成一个0到1之间的随机浮点数,可以使用
nextDouble()
方法:import 'dart:math'; void main() { Random random = Random(); double randomDouble = random.nextDouble(); // 生成0到1之间的随机浮点数 print('Random Double: $randomDouble'); }
-
生成指定范围内的随机数
你可以通过一些简单的数学运算来生成指定范围内的随机数。例如,生成10到20之间的随机整数:
import 'dart:math'; void main() { Random random = Random(); int min = 10; int max = 20; int randomNumber = min + random.nextInt(max - min + 1); // 生成10到20之间的随机整数 print('Random Number: $randomNumber'); }
使用 randomness
插件(如果存在)
如果你确实需要使用一个名为 randomness
的插件,首先你需要确保它已经添加到你的 pubspec.yaml
文件中:
dependencies:
randomness: ^1.0.0 # 请使用最新版本
然后在你的Dart文件中导入并使用它:
import 'package:randomness/randomness.dart';
void main() {
var random = Randomness();
int randomNumber = random.nextInt(100); // 生成0到99之间的随机整数
print('Random Number: $randomNumber');
}