跳过正文
  1. Lumesh 文档/
  2. 内置模块函数/

Lumesh Rand 模块

954 字·2 分钟
目录

模块名称rand 可通过help rand查看帮助。

功能描述:提供随机数生成、随机抽样和随机化操作


函数目录
#

函数组函数名调用格式核心功能
布尔生成ratioRand.ratio [numerator] [denominator]按概率生成布尔值
字符串生成alphaRand.alpha [length]生成随机字母字符串
字符串生成alphanumRand.alphanum [length]生成随机字母数字字符串
数值生成intRand.int [min] [max]生成随机整数
抽样操作chooseRand.choose [list]从列表中随机抽取元素
列表操作shuffleRand.shuffle [list]随机打乱列表顺序

函数详解
#

1. Rand.ratio - 概率布尔生成
#

参数说明

参数模式参数类型作用描述
无参数-默认返回50%概率的true
单参数Float指定true的概率(0.0~1.0)
双参数Integer, Integer分子/分母形式指定概率(如3 5表示3/5概率)

返回值Boolean 示例

1# 基础调用
2Rand.ratio          # => true (50%概率)
3Rand.ratio 0.3      # => false (70%概率)
4
5# 分数形式
6Rand.ratio 1 4      # => true (25%概率)

2. Rand.alpha - 随机字母字符串
#

参数说明

参数模式参数类型作用描述
无参数-返回单个随机字母
单参数Integer指定生成字符串长度

返回值String 示例

1Rand.alpha       # => "k"
2Rand.alpha 5     # => "qjZRy"

3. Rand.alphanum - 随机字母数字字符串
#

参数说明

参数模式参数类型作用描述
无参数-返回单个随机字母或数字
单参数Integer指定生成字符串长度

返回值String 示例

1Rand.alphanum        # => "7"
2Rand.alphanum 8      # => "F3g9K2wQ"

4. Rand.int - 随机整数生成
#

参数说明

参数模式参数类型作用描述
无参数-返回整个i64范围的随机整数
单参数Integer返回\[0, max\]区间整数(支持负数)
双参数Integer, Integer返回\[min, max\]区间整数

返回值Integer 示例

1Rand.int             # => -327683491 (示例)
2Rand.int 100         # => 57
3Rand.int -50 50      # => -12

5. Rand.choose - 列表随机抽样
#

参数说明

参数类型作用描述
1List待抽样的数据列表

返回值:列表中的任意元素(空列表返回None示例

1Rand.choose [1 2 3]          # => 2
2Rand.choose ["A" "B" "C"]    # => "B"

6. Rand.shuffle - 列表随机化
#

参数说明

参数类型作用描述
1List待随机化的数据列表

返回值:元素顺序随机化的新列表 示例

1ori=List.from(0..12)
2Rand.shuffle ori    # => [3, 8, 7, 11 ...]

输出结果

1┌───┬───┬───┬────┬───┬───┬───┬───┬───┬────┬───┬───┐
2│ 3 │ 8 │ 7 │ 11 │ 9 │ 2 │ 5 │ 0 │ 6 │ 10 │ 4 │ 1 │
3└───┴───┴───┴────┴───┴───┴───┴───┴───┴────┴───┴───┘

使用场景示例
#

批量生成测试数据

1# 生成10个随机用户名
2fn gen_user() {
3  name = (List.join "-" [Rand.alpha(3),Rand.int(1000,9999)])
4  age = (Rand.int 18 60)
5  return [name, age]
6}
7
8repeat 10 { gen_user | print }

输出示例

1+-------------------------+
2| USERNAME      AGE       |
3+=========================+
4| xQz-4823      34        |
5| kFt-7391      22        |
6| ...           ...       |
7+-------------------------+

相关文章