F# 在F生成器中获取空值
我对这段代码有问题,我试图生成非空字符串列表,如下所示:F# 在F生成器中获取空值,f#,f#-interactive,fscheck,F#,F# Interactive,Fscheck,我对这段代码有问题,我试图生成非空字符串列表,如下所示: let! x = Arb.generate<string> |> Gen.filter(fun (x) -> x<>null && x <>""&& x<>" ")|>Gen.nonEmptyListOf 运行代码后,我得到以下输出: val it : string list [] = [|["""; ")"; ":}E"; "B";
let! x = Arb.generate<string> |> Gen.filter(fun (x) -> x<>null && x <>""&& x<>" ")|>Gen.nonEmptyListOf
运行代码后,我得到以下输出:
val it : string list [] =
[|["""; ")"; ":}E"; "B"; "!"; "v"; "re"; "Dv-"; ""; "";
"eALyb|>Jn %;a="v`m:<="; ""; ""; ""]|]
正如您所看到的,我的代码正在生成空字符串
请告诉我如何解决此问题?我认为您得到的结果实际上并不包含空字符串,而是包含一个带有不可见字符的字符串 要测试这一点,您可以尝试运行以下程序:
let gen =
Arb.generate<string>
|> Gen.filter(fun (x) -> x<>null && x <>""&& x<>" ")|>Gen.nonEmptyListOf
let res = Gen.eval 1000 (Random.mkStdGen(42L)) gen
我认为您得到的结果实际上并不包含空字符串,而是包含一个带有不可见字符的字符串 要测试这一点,您可以尝试运行以下程序:
let gen =
Arb.generate<string>
|> Gen.filter(fun (x) -> x<>null && x <>""&& x<>" ")|>Gen.nonEmptyListOf
let res = Gen.eval 1000 (Random.mkStdGen(42L)) gen