如果需要else子句

时间:2013-05-13 17:13:29

标签: f# semantics

我在函数中基本上有以下代码,我想消除doSomethingElse()的重复:

fun a ->
    if a = b then
        let c = expensiveOperation()
        if c = d then
            result
        else
            doSomethingElse()
    else
        doSomethingElse()

我想我应该能够消除其他两个条款。并让它返回resultdoSomethingElse()。当我这样做时,来自编译器的错误消息是:“此表达式应该具有类型单位,但这里有类型int”

为什么if表达式需要else子句?

1 个答案:

答案 0 :(得分:3)

这相当于你所写的内容,但我想知道你是否还有别的意思。

if a = b && expensiveOperation() = d then result
else doSomethingElse()