Освой Kotlin играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Kotlin

Любой кот линяет. Из выпавшей шерсти можно собрать второго кота. По такой же аналогии из Java можно создать новый язык Kotlin, образованный из двух слов Kot linяет. Есть ещё неправдоподобная версия об острове в Финском заливе, которая просто смешна и не заслуживает внимания.

Kotlin

17 мая 2017 года на Google IO объявили о поддержке Kotlin в Android Studio 3.0.

Что нового

Версия 1.5.0.

Новые функции для коллекций: firstNotNullOf(), firstNotNullOfOrNull().

Версия 1.4.0. Из интересного:

Можно использовать завершающую запятую в параметрах и аргументах. Это удобно, что можно быстро менять строчки местами, копируя всю строку вместе с запятой.


val colors = listOf(
    "red",
    "green",
    "blue", //trailing comma
)

fun reformat(
    str: String,
    uppercaseFirstLetter: Boolean = true,
    wordSeparator: Character = ' ', //trailing comma
) {
    // ...
}

Можно использовать break и continue в выражениях when удобным способом.


fun test(xs: List<Int>) {
    for (x in xs) {
        when (x) {
            2 -> continue
            17 -> break
            else -> println(x)
        }
    }
}

Новая функция setOfNotNull. Новые функции для коллекций (ищите поиском). Новые функции для массивов (ищите поиском)

3 марта 2020 года вышла версия 1.3.70. Новые классы и функции для коллекций.

22 августа 2019 вышла версия 1.3.50. Появилось новое: Duration and time measurement API.

19 июня 2019 года вышла версия 1.3.40.

В октябре 2018 года вышла версия Kotlin 1.3. Новые функции ByteArray.decodeToString, String.encodeToByteArray, CharArray.concatToString, String.toCharArray.

Корутины вышли из экспериментального статуса.

Функцию main() можно использовать без параметров.

Появились беззнаковые типы: UByte (0...255), UShort (0...65535), UInt (0...2^32 - 1), ULong (0...2^64 - 1).

Новый мультиплатформенный класс kotlin.random.Random: println(Random.nextInt(43))


28 ноября 2017 года вышла новая версия Kotlin 1.2.

Добавлены новые функции для изменяемых списков: fill, replaceAll, shuffle.

Добавлена новая функция shuffled для неизменяемых списков.

Добавлены математические функции. Например, можем узнать, что число является отрицательным.


val item = -100
println("${item.sign}") // вернёт -1

Продолжить изучение Kotlin

Сконвертировать существующий Java-код на Kotlin можно через меню Code | Convert Java File to Kotlin File.

Если скопировать в буфер обмена код на Java и вставить его в kt-файл, то студия автоматически сконвертирует код.

Tools | Kotlin

В студии есть целый раздел меню для настройки: Tools | Kotlin.

Show Kotlin Bytecode

При выборе Show Kotlin Bytecode можно просматривать любой файл *.kt, в отдельном окне будет виден байткод файла. Если в нём не будет данных, которых нельзя представить в Java, то также будет доступна возможность декомпилировать его в Java-код кнопкой Decompile.

Kotlin REPL

Интересная оболочка в виде командной строки. Можно быстро написать какое-то выражение и получить результат.

Примеры на Kotlin

Android KTX

Щелчок кнопки/Счётчик ворон

Переключение между экранами приложения

Запускаем съёмку видео через Intent

ShareActionProvider (Провайдер действия передачи информации)

RxKotlin

Книги

Книга 2020 года Head First. Kotlin (на русском)

Первая книга на русском языке "Kotlin в действии". В начале книге перечисляются благодарности, в том числе - Наконец, мы хотели бы поблагодарить наши семьи и котов за то, что они делают этот мир лучше.

Реклама