[英]Kotlin unit not returning string
此代码的第二个参数必须是字符串,并且email和currentGroup都不为null或为空。 当我使用普通的if else语句时,它会起作用。 但是当我使用Kotlin Lambdas时出现错误。 我也尝试在第二个参数的末尾添加.toString()
,但没有运气。
query.whereEqualTo("currentGroup",{
if (isAdmin) email else currentGroup
})
我还尝试记录第二个参数并获得以下输出: Function0<java.lang.String>
从您的最后一条评论中可以明显看出,函数的第二个参数是String
,因此可以直接使用String
或调用lambda,例如:
query.whereEqualTo("currentGroup",{
if (isAdmin) email else currentGroup
}()) // see the ()? Alternatively/Preferably you may use run {} here, as it is already an inline function (see below)
但是, if
使用if
else
绝对容易使用else
在这里...您不会从引入立即执行的lambda中获得任何收益:
query.whereEqualTo("currentGroup",
if (isAdmin) email else currentGroup
)
还要注意,许多函数使用inline
只是为了克服与lambda相关的运行时惩罚...因此,在开始喜欢lambda并将其在各处使用之前,您可能还需要阅读有关inline
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.