我该如何用惯用的Kotlin来写呢2
我问了一个问题: 现在我有了一个简单的想法,这个成语。如下我该如何用惯用的Kotlin来写呢2,kotlin,idioms,Kotlin,Idioms,我问了一个问题: 现在我有了一个简单的想法,这个成语。如下 private fun getTouchX(): Int = when(arguments) containsKey(KEY_DOWN_X) -> getInt(KEY_DOWN_X) else -> centerX() } containsKey和getInt是参数的方法 当然,这不是when的正确用法 有什么可能的方法可以做到这一点吗 arguments是Android框架中的Bundle类。
private fun getTouchX(): Int = when(arguments)
containsKey(KEY_DOWN_X) -> getInt(KEY_DOWN_X)
else -> centerX()
}
containsKey
和getInt
是参数的方法
当然,这不是when
的正确用法
有什么可能的方法可以做到这一点吗
arguments是Android框架中的Bundle类。
你可以在下面看到
根据您提供的信息,我只能给您以下答案:
private fun getTouchX(): Int = arguments.run {
if (containsKey(KEY_DOWN_X)) getInt(KEY_DOWN_X)
else centerX()
}
如果参数
可为空,则可以如下所示:
private fun getTouchX(): Int = arguments?.run {
if (containsKey(KEY_DOWN_X)) getInt(KEY_DOWN_X)
else null
} ?: centerX()
感谢@ice1000的回答。
我知道下面的成语也有可能
private fun getTouchX(): Int = arguments?.run {
when {
containsKey(KEY_DOWN_X) -> getInt(KEY_DOWN_X)
else -> null
}
} ?: centerX()
如果有3个以上的谓词条件(如果x 3)您没有说明参数的类型,我可能会使用它,这使得这个问题成为一个猜测游戏。再次感谢您的建议。@leoderprofi。我添加了更多关于争论的信息。哦,太好了。我不知道run可以返回值。谢谢您!