Kotlin lambda函数只有return语句

时间:2018-05-24 18:43:05

标签: intellij-idea kotlin

我正在努力警告我不明白这意味着什么。请帮助我理解并解决这个问题。但是它建议使用我不想使用的带标签的返回,因为它看起来很难看。还有其他方法吗?

Warning with lambda return

1 个答案:

答案 0 :(得分:3)

让我们看一个带有lambda参数的函数,比如let

user?.let { it.name }

您可以使用属性引用而不是lambda执行相同的操作:

user?.let(User::name)

显然 - 因为IntelliJ检查到位了 - 将两者意外地结合起来是一个常见的错误,并且在花括号内使用属性引用而不是其中一个,如下所示: / p>

user?.let { User::name }

......或者像这样:

user?.let { user::name }

这会导致将该属性引用作为返回值而不是您可能期望的名称。