Ответ 1
Используйте синтаксис x !in list
.
Следующий код:
val arr = intArrayOf(1,2,3)
if (2 !in arr)
println("in list")
скомпилируется до эквивалента:
int[] arr = new int[]{1, 2, 3};
// uses xor since JVM treats booleans as int
if(ArraysKt.contains(arr, 2) ^ true) {
System.out.println("in list");
}
Операторы in
и !in
используют любой доступный метод или метод расширения с именем contains
и возвращают Boolean
. Для коллекции (list, set...) используется метод collection.contains
. Для массивов (включая примитивные массивы) используется метод расширения Array.contains
, который реализуется как indexOf(element) >= 0