如何简化多个等于检查条件?
Kotlin如何更容易地做到这一点?
if (translation.equals(TRANSLATION_X) || translation.equals(TRANSLATION_Y) || translation.equals(TRANSLATION_Z) ) { return } else { translation = TRANSLATION_X }
首先,您可以使用自动翻译为.equals(...)
调用的结构相等运算符==
: translation == TRANSLATION_X
而不是translation.equals(TRANSLATION_X)
。
那么,你可以使用when
语句 :
when (translation) { TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z -> return else -> translation = TRANSLATION_X }
在这种情况下,一个when语句似乎被占用:
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 }
另一个可能比when
表达式更有效的方法是使用Set
:
val options = setOf(TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z) if (translation in options) return else translation = TRANSLATION_X