Ниже я публикую фрагмент моей программы 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
Я получаю "Тип блока не имеет нуль в качестве надлежащего значения" ошибка. Я довольно новичок в программировании на F #, и я не совсем понимаю, что может вызвать эту проблему.
fuzzyVars имеет тип FuzzyVariable list. FuzzyVariable - это настраиваемый тип.
EDIT.
Как @Tomas Petricek указал, была линия в моем коде, который возвращается нуль:
| [] -> null
Мое намерение состояло в том, чтобы игнорировать значение матча. Правильный способ сделать это:
| [] ->()
После этого все работает нормально.
@mydogisbox Это ошибка компиляции. –
О, хе-хе, так и есть. – mydogisbox
'fuzzyVars <- var :: fuzzyVars' возвращает тип единицы. Что вы делаете с возвращаемым значением матча? – mydogisbox