Kotlin, как проверить, является ли что-то или - PullRequest
0 голосов
/ 22 марта 2019

Я хочу проверить

if (people.job == Job.Developer || people.job == Job.Scientist) {
    // do Something
}

Впрочем, мне это кажется некрасивым.

Я хочу что-то вроде:

if (people.job in (Job.Developer, Job.Scientist)) {
}

Ответы [ 2 ]

4 голосов
/ 22 марта 2019

К сожалению, ответ Мартина Л. Дженсена был сам по себе опущен и удален, но я думаю, что сам when на самом деле все еще самый простой способ решить эту проблему:

when (people.job) {
  Job.Developer, Job.Scientist -> println("Fine") // or return a value or whatever
}

Преимущество в отличие от других показанных решений: не создается промежуточное звено Set или List, которое вы сразу отбрасываете.

3 голосов
/ 22 марта 2019

Вы можете использовать setOf:

if (people.job in setOf(Job.Developer, Job.Scientist)) {
    println("Fine")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...