尽管随机生成器仅创建一次,但输出始终是相同的随机结果(对于所有三个测试输出)。
一个稍大的脚本的测试代码段:
let myRandGen = System.Random()
let getRandomObject =
let options = [|"Bob"; "Jim"; "Jane"|]
let randIndex = myRandGen.Next(options.Length)
options.[randIndex]
printfn "New one: %s" getRandomObject
printfn "New two: %s" getRandomObject
printfn "New three: %s" getRandomObject
Run Code Online (Sandbox Code Playgroud)
我需要每个调用的输出是随机的,当前不是。
输出示例:
New one: Jane
New two: Jane
New three: Jane
Run Code Online (Sandbox Code Playgroud)
nil*_*irk 13
您getRandomObject是一个价值。它被评估一次。要解决此问题,请执行getRandomObject以下功能:
let getRandomObject () =
let options = [|"Bob"; "Jim"; "Jane"|]
let randIndex = myRandGen.Next(options.Length)
options.[randIndex]
Run Code Online (Sandbox Code Playgroud)
并这样称呼它: getRandomObject ()
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |