Освой Kotlin играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
Любой кот линяет. Из выпавшей шерсти можно собрать второго кота. По такой же аналогии из Java можно создать новый язык Kotlin, образованный из двух слов Kot linяет. Есть ещё неправдоподобная версия об острове в Финском заливе, которая просто смешна и не заслуживает внимания.
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
Сконвертировать существующий Java-код на Kotlin можно через меню Code | Convert Java File to Kotlin File.
Если скопировать в буфер обмена код на Java и вставить его в kt-файл, то студия автоматически сконвертирует код.
В студии есть целый раздел меню для настройки: Tools | Kotlin.
При выборе Show Kotlin Bytecode можно просматривать любой файл *.kt, в отдельном окне будет виден байткод файла. Если в нём не будет данных, которых нельзя представить в Java, то также будет доступна возможность декомпилировать его в Java-код кнопкой Decompile.
Интересная оболочка в виде командной строки. Можно быстро написать какое-то выражение и получить результат.
Переключение между экранами приложения
Запускаем съёмку видео через Intent
ShareActionProvider (Провайдер действия передачи информации)
Книга 2020 года Head First. Kotlin (на русском)
Первая книга на русском языке "Kotlin в действии". В начале книге перечисляются благодарности, в том числе - Наконец, мы хотели бы поблагодарить наши семьи и котов за то, что они делают этот мир лучше.