如何使用Kotlin更轻松地完成这项工作?
if (translation.equals(TRANSLATION_X) ||
translation.equals(TRANSLATION_Y) ||
translation.equals(TRANSLATION_Z)
) {
return
} else {
translation = TRANSLATION_X
}
答案 0 :(得分:13)
首先,您可以使用structural equality operator ==
,when
statement自动转换为.equals(...)
来电:translation == TRANSLATION_X
而不是translation.equals(TRANSLATION_X)
。
然后,您可以使用https://developer.paypal.com/:
when (translation) {
TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z -> return
else -> translation = TRANSLATION_X
}
答案 1 :(得分:7)
另一种可能比when
表达更有效的替代方法是使用Set
:
val options = setOf(TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z)
if (translation in options) return
else translation = TRANSLATION_X
答案 2 :(得分:3)
在这种情况下,何时陈述似乎是适当的:
val translation = when( translation ) {
TRANSLATION_X -> translation
TRANSLATION_Y -> translation
TRANSLATION_Z -> translation
else TRANSLATION_X
}
我认为你也可以用这样的句子将这三个相似的案例分组:
val translation = when( translation ) {
TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z -> translation
else TRANSLATION_X
}