gpt4 book ai didi

kotlin - 任何可提升到 `Unit` 的 λ 密码域?

转载 作者:行者123 更新时间:2023-12-01 13:54:32 25 4
gpt4 key购买 nike

显然,这被类型检查器拒绝了:

val a: Unit = 42 // Fail

但是,这很好:

val b: Unit = { 42 }() // Pass

我能理解:

val f: ()->Any = { -> 42 } // Pass

Int <: Any .但是,Unit 必须不同。 (它不是 Int 的父类(super class)型)。是否有一些文档解释发生了什么?

最佳答案

官方文档在 lambda expression syntax 下对此进行了介绍:

If the inferred return type of the lambda is not Unit, the last (or possibly single) expression inside the lambda body is treated as the return value.

所以基本上,如果您将 lambda 显式分配给返回 Unit 的函数类型,或者您调用它并将其结果分配给 Unit,它会推断您没有' 不希望返回 lambda 中的最后一个表达式(默认情况下会发生这种情况)。

关于kotlin - 任何可提升到 `Unit` 的 λ 密码域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48519699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com