美文网首页
Lambda 中 if 嵌套的问题

Lambda 中 if 嵌套的问题

作者: 案玉璃青 | 来源:发表于2020-06-17 11:31 被阅读0次

    今天遇见一个奇怪的问题:

    报错

    因为外层 else 表达式有一个 String 类型返回值,所以这里 u 类型为 () -> Any,它需要一个返回值类型,因此内层 if 被视为外层 if 的取值表达式,必须要有 else 分支。

    将外层 else 表达式返回值去掉后不报错:

    去掉返回值

    此时 u 类型为 () -> Unit,即无返回值 lambda 函数类型,那么 if-else 也就不是取值表达式了,因为不需要返回值。

    其实我们只要把最外层 {} 去掉就知道了:

    去掉 {}

    这样肯定是不行的,因为内层只有一个 if 分支,这样是取不到值的。

    PS:

    Unit?

    相关文章

      网友评论

          本文标题:Lambda 中 if 嵌套的问题

          本文链接:https://www.haomeiwen.com/subject/uttzzhtx.html