如何简化多个等于检查条件?

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