下面我发布了导致问题的 F# 程序的片段。
...
match words with
| name :: "of" :: context :: "=" :: value :: _ when Double.TryParse(value) |> fst ->
let var = new FuzzyVariable(name, context, Double.Parse value)
fuzzyVars <- var :: fuzzyVars
排队:
fuzzyVars <- var :: fuzzyVars
我收到“类型单元没有 null 作为正确值”错误。我对 F# 编程相当陌生,我不太清楚可能导致此问题的原因。
FuzzyVars 是 FuzzyVariable 列表类型。FuzzyVariable 是一种自定义类型。
编辑。
正如@Tomas Petricek 指出的那样,我的代码中有一行返回null:
| [] -> null
我的意图是忽略比赛的价值。正确的做法是:
| [] -> ()
更改后一切正常。