2017-02-14 2 views
3

Что такое идиоматический способ проверить, содержит ли массив строк значение в kotlin? Также как ruby's #include?.Kotlin - Идиоматический способ проверки массива содержит значение

я хоть о:

array.filter { it == "value" }.any() 

Есть ли лучший способ?

+0

Почему вы размещаете этот вид вопросов на StackOverflow? Просто зайдите в Google или откройте ссылку API. –

+0

Принимая во внимание ответы в ответах, через 2 дня, я думаю, я помог 18 людям и получил 60 просмотров. Я думаю, что это позитивно для сообщества, и ни один вопрос не слишком глупый, чтобы его попросили. – jturolla

ответ

7

Эквивалент, который вы ищите, это оператор contains.

array.contains("value") 

Котлин предлагают альтернативный infix notation для этого оператора:

"value" in array 

Это та же функция, вызываемая за сценой, но так как infix notation являются не найдены в Java, можно сказать, что in является наиболее идиоматический путь.

+1

Когда я пытаюсь это сделать в Kotlin, я получаю «Ошибка ввода типа». Значение параметра типа T следует указывать в типах входных данных ». частный вар domainsArray = arrayOf ("@ ebay.com", "@ google.com", "@ gmail.com", "@ umd.edu") вар domainFound = Arrays.asList (domainsArray) .Contains (email) –

+0

Просто напишите var domainFound = domainsArray.contains (email) или более idiomatic var domainFound = email в доменахArray –

7

Использование в Оператор - это идиоматический способ сделать это.

val contains = "a" in arrayOf("a", "b", "c") 
Смежные вопросы