Сообщения

Сообщения за декабрь, 2020

Возврат и прыжки в Kotlin

Изображение
Возврат и прыжки В Kotlin есть три выражения структурного скачка: return. По умолчанию возвращается из ближайшей включающей функции или анонимной функции. break. Завершает ближайший охватывающий цикл. continue. Переходит к следующему шагу ближайшего охватывающего цикла. Все эти выражения можно использовать как часть более крупных выражений: val s = person.name ?: return Тип этих выражений - тип Nothing. Break и Continue метки Любое выражение в Kotlin может быть помечено меткой. Метки имеют форму идентификатора, за которым следует знак @, например: abc@, fooBar@ - допустимые метки. Чтобы обозначить выражение, мы просто ставим перед ним метку loop@ for (i in 1..100) { // ... } Теперь мы можем квалифицировать break или continue с помощью метки: loop@ for (i in 1..100) { for (j in 1..100) { if (...) break@loop } } break, отмеченный меткой, переходит к точке выполнения сразу после цикла, отмеченного этой меткой. continue переходит к следующе

For циклы в Kotlin

Изображение
Цикл for перебирает все, что предоставляет итератор. Это эквивалентно циклу foreach в таких языках, как C#. Синтаксис следующий: for (item in collection) print(item) Тело может быть блоком. for (item: Int in ints) { // ... } Как упоминалось выше, for выполняет итерацию всего, что предоставляет итератор, т.е. имеет функцию-член или функцию расширения iterator(), возвращаемый тип которого имеет функцию-член или функцию расширения next(), и имеет функцию-член или функцию расширения hasNext(), которая возвращает Boolean. Все эти три функции необходимо пометить как operator. Чтобы перебрать диапазон чисел, используйте выражение диапазона: for (i in 1..3) { println(i) } for (i in 6 downTo 0 step 2) { println(i) } Цикл for по диапазону или массиву компилируется в цикл на основе индекса, который не создает объект-итератор. Если вы хотите перебрать массив или список с индексом, вы можете сделать это следующим образом: for (i in array.indices) {

Выражение when в Kotlin

Изображение
Выражение when заменяет оператор switch в C-подобных языках. В простейшем виде это выглядит так when (x) { 1 -> print("x == 1") 2 -> print("x == 2") else -> { // Обратите внимание на блок print("x не равно 1 и не равно 2") } } when сопоставляет свой аргумент со всеми ветвями последовательно, пока не будет выполнено какое-либо условие ветвления. when может использоваться как выражение или как утверждение. Если оно используется как выражение, значение удовлетворенной ветви становится значением всего выражения. Если он используется как утверждение, значения отдельных ветвей игнорируются. (Как и в случае с if, каждая ветвь может быть блоком, а ее значением является значение последнего выражения в блоке.) Ветвь else оценивается, если ни одно из других условий ветвления не удовлетворяется. Если when используется в качестве выражения, ветвь else является обязательной, если компилятор не может доказать, что все возможные сл

Выражение if в Kotlin

Изображение
В Kotlin if - это выражение, то есть возвращает значение. Следовательно, нет тернарного оператора (condition ? then : else), потому что обычный if отлично работает в этой роли. // Традиционное использование var max = a if (a < b) max = b // С ветвью else var max: Int if (a > b) { max = a } else { max = b } // Как выражение val max = if (a > b) a else b if ветви могут быть блоками, а последнее выражение - это значение блока: val max = if (a > b) { print("Выбрать a") a } else { print("Выбрать b") b } Если вы используете if как выражение, а не как оператор (например, возвращаете его значение или присваиваете его переменной), выражение должно иметь ветвь else. Читайте также: Массивы в Kotlin Строки в Kotlin Пакеты и импорты в Kotlin