2

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

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

我想我应该能够消除这两个 else 子句。并让它返回resultor doSomethingElse()。当我这样做时,来自编译器的错误消息是:“这个表达式应该有单元类型,但这里有 int 类型”

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

4

1 回答 1

3

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

if a = b && expensiveOperation() = d then result
else doSomethingElse()
于 2013-05-13T17:22:20.730 回答