我正在努力弄清楚为什么会收到以下错误:
阻止这样做'让'尚未完成。期待一个表达。
let hashset = System.Collections.Generic.HashSet<int>()
let mutable continueLooping = true
while (continueLooping) do
let value = System.Random().Next(0, 12)
let success = hashset.Add(value)
continueLooping <- hashset.Count <> 12
let z = hashet
错误基于以下行:
let z = hashset
为什么我收到此错误?
注:
我是F#的新手。结果,请原谅我的无知。
答案 0 :(得分:2)
据我所知,只是因为你在那里混合了标签和空格 - 如果我在FSharpInteractive中对它进行评估,这种方法就有用了:
let hashset = System.Collections.Generic.HashSet<int>()
let mutable continueLooping = true
while (continueLooping) do
let value = System.Random().Next(0, 12)
let success = hashset.Add(value)
continueLooping <- hashset.Count <> 12
let z = hashset
评估为
val hashset : System.Collections.Generic.HashSet<int>
val mutable continueLooping : bool = false
val z : System.Collections.Generic.HashSet<int>
然后z |> Seq.toArray
评估为
val it : int [] = [|2; 8; 9; 3; 4; 10; 5; 11; 0; 6; 1; 7|]
看起来很好
btw:因为你有一个小错字:... z = hashet
而不是hashset
我认为你没有复制和粘贴导致你的错误的代码。