我在函数中基本上有以下代码,我想消除doSomethingElse()
的重复:
fun a ->
if a = b then
let c = expensiveOperation()
if c = d then
result
else
doSomethingElse()
else
doSomethingElse()
我想我应该能够消除其他两个条款。并让它返回result
或doSomethingElse()
。当我这样做时,来自编译器的错误消息是:“此表达式应该具有类型单位,但这里有类型int”
为什么if
表达式需要else
子句?
答案 0 :(得分:3)
这相当于你所写的内容,但我想知道你是否还有别的意思。
if a = b && expensiveOperation() = d then result
else doSomethingElse()