F# 为什么在if语句中会得到bool的错误消息
我试图做一个if语句,它应该看看列表是否为空。然后它应该返回一个布尔值true或false。但是我得到了错误信息。我该如何纠正这一点 Lint:F# 为什么在if语句中会得到bool的错误消息,f#,boolean,F#,Boolean,我试图做一个if语句,它应该看看列表是否为空。然后它应该返回一个布尔值true或false。但是我得到了错误信息。我该如何纠正这一点 Lint:如果a为真,那么else为假可能可以重构为a 您的if表达式的格式为if-a-then-true-else-false,因此您可以按照建议对其进行重构。您还可以使用模式匹配来替换fst和snd: let isGameOver (p : player) (fstb, sndb) : bool = List.sum fstb = 0 || List.su
如果a为真,那么else为假
可能可以重构为a
您的
if
表达式的格式为if-a-then-true-else-false
,因此您可以按照建议对其进行重构。您还可以使用模式匹配来替换fst
和snd
:
let isGameOver (p : player) (fstb, sndb) : bool =
List.sum fstb = 0 || List.sum sndb = 0
为什么在if语句中会收到布尔的错误消息?我如何纠正这个问题 您需要关注的代码部分是
if List.sum (fst b) = 0 || List.sum (snd b) = 0 then
true
else
false
if语句的结果是bool
,例如true
或false
Lint非常聪明,知道您正在使用if
返回bool
,并且if语句的条件部分也是类型bool
。林特说的是
if (expr) then
true
else
false
不需要,只需使用表达式即可完成
所以改变是只使用if
的表达式部分
List.sum (fst b) = 0 || List.sum (snd b) = 0
这实际上并不是一条错误消息,而是来自的一条消息,表明您可能能够重构代码
linter暗示的是,当表达式
List.sum(fst b)=0 | | List.sum(snd b)=0
为true
时,函数返回true
,当表达式false
时,函数返回false
。因此,if
语句是不必要的。Ello,缩进在F#中很重要。你能按语法设置缩进格式吗。
List.sum (fst b) = 0 || List.sum (snd b) = 0