Kotlin. Программирование для профессионалов - Джош Скин - E-Book

Kotlin. Программирование для профессионалов E-Book

Джош Скин

0,0

Beschreibung

Kotlin — это язык программирования со статической типизацией, который взяла на вооружение Google в ОС Android. Кроме того, это мультиплатформенный язык, позволяющий создавать приложения для macOS, Windows и iOS. Джош Скин, Дэвид Гринхол, Эндрю Бэйли на практических примерах познакомят вас с ключевыми концепциями Kotlin и фундаментальными API. Вы начнете с основных принципов и перейдете к расширенному использованию нетривиальных возможностей Kotlin, чтобы создавать надежные и эффективные приложения, а так же освоите среду разработки IntelliJ IDEA от JetBrains.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 643

Veröffentlichungsjahr: 2024

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Джош Скин, Дэвид Гринхол, Эндрю Бэйли
Kotlin. Программирование для профессионалов. 2-е изд.

Переводчик Е. Матвеев

Джош Скин, Дэвид Гринхол, Эндрю Бэйли

Kotlin. Программирование для профессионалов. 2-е изд.. — СПб.: Питер, 2022.

ISBN 978-5-4461-2319-3

© ООО Издательство "Питер", 2022

Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.

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

— Э. Б.

Ребекке — целеустремленной, упорной и красивой женщине, благодаря которой состоялась эта книга. А также маме и папе за то, что привили мне любовь к знаниям.

— Д. Г.

Посвящается Бейкеру, моему маленькому непоседе.

— Дж. С.

Благодарности

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

• Брайан Силлз (Bryan Sills), Майкл Йотив (Michael Yotive), Нейт Соттек (Nate Sottek), Джереми Шерман (Jeremy Sherman) и Марк Дьюран (Mark Duran) великодушно делились своим мнением относительно второго издания книги.

• Эрик Максвелл (Eric Maxwell) проводил обучение по ранней версии второго издания и подготовил материал для глав о сопрограммах, каналах и потоках данных.

• Лорен Клингман (Loren Klingman) и Джейк Соуэр (Jake Sower) дали нам информацию для главы, посвященной Kotlin/JS.

• Дрю Фицпатрик (Drew Fitzpatrick) полностью прочитал раннюю версию второго издания и снабдил нас материалами о Kotlin Multiplatform и Kotlin/Native.

• Лив Витал (Liv Vitale), Кристиан Кер (Christian Keur), Закари Вальдовски (Zachary Waldowski) и Дэвид Хауз (David House) постоянно делились опытом работы на других платформах и участвовали в обсуждениях Kotlin/JS и Kotlin/Native. Спасибо вам за то, что вы отвечали на наши странные вопросы, когда мы пытались казаться более осведомленными, чем были на самом деле.

• Джавонтай Макэлрой (Javontay McElroy), наш талантливый дизайнер из Big Nerd Ranch, создал шпаргалку IntelliJ IDEA для печатного издания. Ты смело вступил на неизведанную территорию печатных материалов и разработал дизайн с нуля — благодарим!

• Эрик Уилсон (Eric Wilson), Мэдисон Уицлер (Madison Witzler), Фрэнклин О’Нил (Franklin O’Neal) и CJ Best — спасибо великим умам отдела повышения квалификации Big Nerd  Ranch. Наши занятия — и как следствие, эта книга — стали возможными лишь благодаря вашей усердной работе.

• Когда мы рассказывали нашему редактору Элизабет Холадей (Elizabeth Holaday) о своих планах на второе издание книги, первое, что мы от нее услышали: «Похоже, обновление будет серьезным». Конечно, ее оценка была абсолютно верной. Спасибо за самоотверженную работу по совершенствованию книги, доработку ее сильных сторон и устранение недостатков.

• Саймону Пэйменту (Simone Payment), нашему корректору и редактору, спасибо за помощь в последних приготовлениях к выпуску книги.

• Элли Волкхаузен (Ellie Volckhausen) создала дизайн обложки. Это круто!

• Крис Лопер (Chris Loper) из IntelligentEnglish.com разработал и подготовил печатную и цифровую версию книги. Мы также постоянно пользовались его инструментарием DocBook.

• Аарону Хиллеглассу (Aaron Hillegass) и Стейси Генри (Stacy Henry) — наша благодарность! Эта книга не появилась бы на свет без Big Nerd Ranch — компании, которую Аарон основал, а Стейси возглавляет.

Наконец, мы благодарим всех наших студентов. Работа преподавателя дает нам массу возможностей оказаться в шкуре студента, и это здорово! Постоянное узнавание нового — одна из самых замечательных сторон нашей работы, мы делали это совместно с вами — и это было настоящим удовольствием. Надеемся, что уровень книги будет соответствовать вашим энтузиазму и решимости.

Часть I. Первые шаги

Первые две главы книги посвящены основам работы IntelliJ IDEA, ведущей IDE для разработки приложений Kotlin. Вы создадите простой проект, в котором освоите базовые возможности языка. А начнем мы с рассказа о типах Kotlin — механизме классификации данных, с которыми вы будете работать.

1. Ваше первое приложение на Kotlin

В этой главе вы напишете свою первую программу на языке Kotlin, используя IntelliJ IDEA. Это можно рассматривать как обряд посвящения в программирование — вы познакомитесь со средой разработки, создадите в ней новый проект на Kotlin, напишете и запустите код, а также увидите результаты его выполнения. Проект, созданный в этой главе, станет вашей испытательной площадкой для разработки других приложений на Kotlin.

Установка IntelliJ IDEA

IntelliJ IDEA — это интегрированная среда разработки (integrated development environment, IDE) для языка Kotlin, созданная, как и сам язык, командой JetBrains. Чтобы приступить к работе, загрузите IntelliJ IDEA Community Edition с сайта JetBrains по ссылке jetbrains.com/idea/download1 (рис. 1.1).

 

Рис. 1.1. Загрузка IntelliJ IDEA Community Edition

Затем выполните указания для своей системы, приведенные в инструкции по установке и настройке на сайте JetBrains: Jetbrains.com/help/idea/installation-guide.html#standalone.

IntelliJ IDEA, или просто IntelliJ, помогает писать хорошо структурированный код на Kotlin. Кроме того, она упрощает процесс разработки с помощью встроенных инструментов для запуска, отладки, исследования и рефакторинга кода. Узнать, почему мы рекомендуем IntelliJ для создания кода на Kotlin, вы можете в разделе «Для любознательных: зачем использовать IntelliJ?».

Ваш первый проект на Kotlin

Поздравляем: теперь у вас есть язык программирования Kotlin и мощная среда разработки. Осталось только научиться свободно на нем «разговаривать». Повестка дня — создать Kotlin-проект.

Большинство проектов, над которыми вы будете работать в этой книге, связаны с игрой в стиле фэнтези, в которой герой выполняет героические миссии, побеждает злобных монстров, спасает города от опасностей и вообще делает то, что положено делать героям. В первом проекте мы построим «доску поручений» — систему, которая будет направлять нашего героя по имени Мадригал (Madrigal) к задачам, требующим его внимания. Запустите IntelliJ. Откроется окно приветствия Welcome to IntelliJ IDEA (рис. 1.2).

 

Рис. 1.2. Диалоговое окно с приветствием

(Если вы уже запускали IntelliJ после установки, среда может автоматически загрузить последний открывавшийся проект. Чтобы вернуться к окну приветствия, закройте проект командой меню FileClose Project.)

Выберите вариант New Project. IntelliJ отобразит новое окно New Project, как показано на рис. 1.3.

 

Рис. 1.3. Диалоговое окно New Project

В окне New Project в левой панели выберите Kotlin (рис. 1.4).

В IntelliJ можно писать код и на других языках, кроме Kotlin, например на Java и Groovy, для которых имеется встроенная поддержка. Установив дополнительные плагины, вы получите возможность писать код в IntelliJ на таких языках, как Python, Scala, Dart и Rust (список далеко не полный). Выбрав вариант Kotlin в левой части окна New Project,вы указываете, что собираетесь работать на Kotlin.

Теперь рассмотрим настройки проекта на центральной панели диалогового окна.

В верхней части окна New Project введите в поле Name текст bounty-board. Поле Location заполняется автоматически. Вы можете оставить информацию в этом поле без изменений или выбрать другую папку, щелкнув на значке с папкой справа от поля.

 

Рис. 1.4. Создание проекта Kotlin

Меню Project Template содержит три категории параметров: JVM, Multiplatform и Kotlin/JS (также возможна категория Experimental). Выберите вариант Application под заголовком JVM. Тем самым вы сообщаете IntelliJ, что собираетесь писать код на Kotlin, предназначенный для виртуальной машины Java.

Код на Kotlin может компилироваться для любой из трех платформ, поддерживаемых языком: виртуальной машины Java, платформ x86 и ARM (из раздела Multiplatform списка Project Template), а также JavaScript (сокращается до JS). Иногда для обозначения «специализации» Kotlin в зависимости от платформы используются термины Kotlin/JVM, Kotlin/Native и Kotlin/JS.

Kotlin/JVM — то, что большинство разработчиков имеют в виду, когда говорят о Kotlin. Kotlin/JVM обозначает код для виртуальной машины Java. Аналогично Kotlin/JS используется для вывода кода JavaScript из кода Kotlin. А Kotlin/Native обозначает все программы Kotlin, компилируемые в нативный машинный код. Как подсказывает название категории Multiplatform, Kotlin/Native можно использовать для построения программных продуктов для многих платформ: библиотек iOS, нативных настольных приложений, встроенных устройств (для самых амбициозных) и т.д.

Далее мы будем везде применять сокращенное название виртуальной машины Java — JVM (Java Virtual Machine). Эта аббревиатура часто используется в сообществе Java-разработчиков. Узнать больше о программировании для JVM можно в разделе «Для любознательных: программирование для JVM» в конце главы.

Kotlin/JVM — наиболее зрелая из трех платформ. Она изначально поддерживалась Kotlin и продолжает оставаться одной из самых распространенных платформ для разработки на этом языке. В большей части книги будет использоваться Kotlin/JVM. Мы приняли такое решение по нескольким причинам.

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

• Java — чрезвычайно зрелый язык, и для него существует множество API, которые мы используем в книге. Высокоуровневые API упрощают выполнение некоторых задач (по сравнению с низкоуровневыми платформенными API).

• Примеры, приведенные в книге, выполняются внутри IDE, но их также можно запускать из любого терминала. Это несколько снижает ценность JavaScript как платформы, так как он выполняется в основном в браузере, а не в тер­минале.

В особенностях Kotlin для этих трех платформ много общего, и то, что вы знаете о Kotlin/JVM, применимо к Kotlin/JS и Kotlin/Native. Не все API доступны на всех платформах, поэтому мы будем особо отмечать API, которые используются только с JVM. Использование Kotlin с другими платформами мы более подробно рассмотрим в главах 24, 25 и 26.

Но вернемся к настройке нового проекта. В группе Build System выберите вариант Gradle Groovy. В списке Project JDK выберите версию Java, которая будет использована при компоновке с JDK (Java Development Kit). Мы рекомендуем применять версии от Java 8 (часто обозначается Java 1.8) до Java 15.

Если нужная версия Java отсутствует в раскрывающемся списке, значит, IntelliJ не находит установленную копию на вашем компьютере. Если вы точно знаете, что пакет JDK у вас установлен, и хотите использовать именно эту версию, выберите команду Add JDK... и найдите копию на диске. В противном случае IntelliJ установит для вас JDK при помощи команды Download JDK.... Мы рекомендуем выбрать в поле Version значение 15, а в поле Vendor — значение AdoptOpenJDK (HotSpot), но подойдет любой вендор. Когда IntelliJ завершит установку, можно браться за дело.

Зачем нужен JDK для написания программы на Kotlin? JDK открывает среде IntelliJ доступ к JVM и инструментам Java, которые необходимы для перевода кода на Kotlin в байт-код (об этом ниже). В принципе, подойдет любая версия, начиная с шестой. Но по нашему опыту, на момент написания этой книги JDK 8 и более ранние версии работали наиболее стабильно.

Если диалоговое окно выглядит так, как показано на рис. 1.5, щелкните на кнопке Next, а затем на кнопке Finish в следующем диалоговом окне для подтверждения введенных значений.

 

Рис. 1.5. Настройка проекта

IntelliJ сгенерирует проект с названием bounty-board и отобразит проект в стандартном двухпанельном представлении (рис. 1.6). IntelliJ создаст на диске папку и ряд подпапок с файлами проекта в месте, путь к которому указан в поле Project location.

Панель слева отображает окно с инструментами проекта. Панель справа в данный момент пуста. Здесь будет отображаться окно редактора, где вы сможете просматривать и редактировать содержимое своих Kotlin-файлов.

В окне инструментов проекта выводится список файлов, используемых в проекте bounty-board, как показано на рис. 1.7.

Проект — это весь исходный код программы, а также информация о зависимостях и конфигурациях. Проект может быть разбит на один или более модулей, которые можно рассматривать как своего рода подпроекты. По умолчанию новый проект содержит всего один модуль, которого более чем достаточно для начала вашей работы.

 

Рис. 1.6. Стандартное двухпанельное представление

Папки .gradle и .idea на рис. 1.7 могут быть скрыты при открытии проекта в проводнике файлов. Это служебные папки, к которым вам обращаться не стоит; в ­папке .gradle хранятся кэши, используемые системой сборки, а в папке .idea — файлы с параметрами конфигурации проекта и IDE.

 

Рис. 1.7. Представление проекта

Папка gradle и такие файлы, как gradlew и gradlew.bat, относятся к Gradle Wrapper — автономной копии системы построения Gradle, которая требуется  для установки Gradle на вашем компьютере. Файлы build.gradle, gradle.properties и settings.gradle содержат параметры конфигурации системы сборки Gradle. Они определяют различные данные: имя проекта, уровень языка, модули проекта и зависимости вашего проекта. Не трогайте эти автоматически сгенерированные файлы.

Категория External Libraries содержит информацию о библиотеках, от которых зависит проект. Раскрыв эту категорию, вы увидите, что среда IntelliJ автоматически добавила Java и некоторые стандартные библио­теки Kotlin как зависимости вашего проекта. (­Узнать больше о структуре проектов в IntelliJ можно на сайте JetBrains — jetbrains.org/intellij/sdk/docs/basics/project_sctructure.html. Структура проектов Gradle также рассматривается на сайте Gradle — docs.gradle.org/current/userguide/organizing_gradle_projects.html.)

В папке src/main/kotlin будут сохраняться все файлы проекта. А теперь пришло время создавать и редактировать ваш первый файл на Kotlin.

Ваш первый файл на Kotlin

Щелкните правой кнопкой мыши на папке src/main/kotlin в окне с инструментами проекта. В открывшемся контекстном меню выберите сначала пункт New, а затем Kotlin File/Class (рис. 1.8).

 

Рис. 1.8. Создание нового файла Kotlin

В диалоговом окне New Kotlin Class/File в поле Name введите Main, затем дважды щелк­ните на пункте File в открывшемся списке (рис. 1.9).

 

Рис. 1.9. Присваивание имени файлу

IntelliJ создаст в проекте новый файл src/main/kotlin/Main.kt и отобразит его содержимое в окне редактора справа (рис. 1.10). Расширение .kt указывает, что файл содержит исходный код на языке Kotlin, подобно тому как расширение .java сообщает, что файл содержит код Java или .py — код Python.

Наконец-то все готово к написанию кода на Kotlin. Разомните пальцы и приступайте. Введите следующий код в окне редактора Main.kt. (Напоминаем, что в книге код, который вам следует ввести, будет выделяться полужирным шрифтом.)

 

Рис. 1.10. Пустой файл Main.kt в окне редактора

Листинг 1.1.  "Hello, world!" на Kotlin (Main.kt)

fun main() {

    println("Hello, world!")

}

Написанный код может выглядеть непривычно. Не отчаивайтесь — к концу этой книги чтение и написание на Kotlin станет для вас абсолютно естественным. А пока что достаточно понимать код хотя бы в общих чертах.

Код в листинге 1.1 создает новую функцию. Функция — это группа инструкций, которые можно выполнить позднее. В главе 4 вы научитесь определять функции и работать с ними.

Конкретно эта функция — main — имеет особое значение в Kotlin. Она определяет начальную точку программы. Ее также называют точкой входа приложения; чтобы проект bounty-board (или любую другую программу) можно было запустить, в нем обязательно должна быть определена точка входа. Все проекты в этой книге начинаются с функции main.

Ваша функция main содержит одну инструкцию (иногда инструкции называют командами): println("Hello,world!"). println() — это тоже функция, встроенная в стандартную библиотеку Kotlin. Она доступна для всех платформ, поддержи­ваемых Kotlin. После запуска программа выполнит println("Hello,world!"), и IntelliJ выведет на экран строку, указанную в скобках (без кавычек — Hello, world!).

Запуск вашего файла на языке Kotlin

Когда вы закончите вводить код из листинга 1.1, IntelliJ отобразит зеленую стрелку слева от первой строки кода (рис. 1.11). (Если значок не появился или вы видите красное подчеркивание под именем файла на вкладке или где-нибудь во введенном коде, то это значит, что в коде допущена ошибка. Исправьте введенный код: он должен точно совпадать с кодом в листинге 1.1.)

 

Рис. 1.11. Кнопка запуска программы

Пришло время оживить программу — пусть она поприветствует мир. Нажмите кнопку запуска. В появившемся меню выберите Run ‘MainKt’ (рис. 1.12). Тем самым вы сообщаете IntelliJ, что хотите посмотреть на программу в действии.

 

Рис. 1.12. Запуск Main.kt

После запуска IntelliJ выполнит код, содержащийся в фигурных скобках ({}), строку за строкой, и завершит выполнение. Также в нижней части окна IntelliJ появится новое инструментальное окно (рис. 1.13).

 

Рис. 1.13. Инструментальное окно Run (консоль)

Это — инструментальное окно запуска (run tool window), также известное как консоль (далее мы будем называть его именно так). Оно отображает информацию о происходящем после того, как IntelliJ запустит программу, и результаты, которые выводит программа. В консоли должно появиться сообщение Hello, world! и сообщение Process finished with exit code 0, что означает успешное завершение программы. Эта строчка завершает консольный вывод при отсутствии ошибок, и с этого момента мы больше не будем ее упоминать.

Компиляция и выполнение кода Kotlin/JVM

С момента выполнения команды Run 'Mainkt' до вывода Hello, World! в консоли происходит множество событий.

Прежде всего, IntelliJ компилирует код Kotlin, используя компиляторkotlinc-jvm. Это означает, что IntelliJ транслирует код на Kotlin в байт-код — язык, на котором «разговаривает» JVM. Если у kotlinc возникнут проблемы с переводом, он выведет сообщение об ошибке (ошибках), которое подскажет, что именно необходимо исправить. Однако если компиляция прошла гладко, IntelliJ перейдет к фазе выполнения.

В фазе выполнения байт-код, сгенерированный kotlinc-jvm, исполняется JVM. На консоли отображается все, что выводит программа в процессе выполнения, например текст, указанный в вызове функции println().

После выполнения всех инструкций в байт-коде JVM прекратит работу и IntelliJ выведет код завершения в консоль, сообщая вам о том, была работа завершена успешно или с ошибкой.

Для изучения материала этой книги вам не обязательно досконально понимать процесс компиляции в Kotlin. Тем не менее мы более подробно рассмотрим байт-код в главе 2.

Kotlin REPL

Иногда возникает необходимость протестировать маленький кусочек кода на Kotlin, чтобы посмотреть, что происходит при его выполнении, — по аналогии с тем, как вы записываете последовательность вычислений на листке бумаги. Такая возможность особенно полезна в процессе изучения языка. Вам повезло: IntelliJ предоставляет инструмент для быстрого тестирования кода без создания файла. Этот инструмент называется Kotlin REPL. Название объясним позже, а сейчас посмотрим, что он делает.

В IntelliJ откройте Kotlin REPL, выбрав в меню команду ToolsKotlinKotlin REPL (рис. 1.14).

 

Рис. 1.14.  Открытие инструментального окна Kotlin REPL

IntelliJ отображает панель REPL в нижней части окна (рис. 1.15).

 

Рис. 1.15. Инструментальное окно Kotlin REPL

Код в REPL можно вводить так же, как в редакторе. Разница в том, что вы быстро получите результат без компиляции всего проекта.

(При запуске REPL могут появиться предупреждения красного цвета "running the REPL with outdated classes" — «запуск REPL с устаревшими классами». Обычно на такие предупреждения можно не обращать внимания. Общие проблемы платформы или JVM не нанесут вреда при использовании REPL, а поскольку в REPL вы не будете обращаться к коду из bounty-board, предупреждения об устаревших классах можно игнорировать.)

Введите следующий код в REPL.

Листинг 1.2. "Hello, Kotlin!" (REPL)

println("Hello, Kotlin!")

После ввода текста нажмите Command-Return (Ctrl-Enter), чтобы выполнить код в REPL. Через мгновение вы увидите результат под введенной строкой — это должен быть текст Hello, Kotlin! (рис. 1.16).

 

Рис. 1.16. Выполнение кода

REPL — это сокращение от Read, Evaluate, Print, Loop (прочитать, выполнить, вывести, повторить). Вы вводите фрагмент кода после подсказки и отправляете его в обработку, нажав на зеленую кнопку запуска слева в окне REPL или Command-Return (Ctrl-Enter). Далее REPL читает код, выполняет его и выводит результат. Завершив выполнение, REPL возвращает управление пользователю и дает возможность повторить процесс.

Ваше путешествие по миру Kotlin началось! Вы проделали важную работу в этой главе, заложив фундамент для дальнейшего изучения программирования на Kotlin. В следующей главе мы начнем знакомить вас с деталями языка: вы узнаете, как использовать переменные, константы и типы для представления данных.

Для любознательных: зачем использовать IntelliJ

Для написания кода на языке Kotlin подойдет любой текстовый редактор. Однако мы рекомендуем использовать IntelliJ, особенно пока вы учитесь. Подобно тому как функции проверки грамматики и правописания в текстовом редакторе помогают грамотно написать любую статью, IntelliJ предлагает инструменты, позволяющие писать хорошо структурированный код на Kotlin. Итак, IntelliJ поможет вам:

• писать синтаксически и семантически правильный код с помощью таких функций, как подсветка синтаксиса, контекстные подсказки, автодополнение;

• выполнять код и производить его отладку с помощью таких функций, как точка останова и пошаговое выполнение программы;

• изменять структуру существующего кода с помощью методов рефакто­ринга (таких, как переименование или извлечение констант) и форматирования кода для правильной расстановки отступов.

Кроме того, так как и язык Kotlin, и среда разрабатывались командой JetBrains, интеграция Kotlin с IntelliJ была тщательно проработана, что делает работу легкой и приятной. Также стоит упомянуть, что среда IntelliJ была заложена в основу Android Studio, поэтому горячие клавиши и средства, описанные в этой книге, вы сможете использовать и там (если потребуется, конечно).

Для любознательных: программирование для JVM

JVM — это программа, которая умеет выполнять набор инструкций, называемых байт-кодом.

Программирование для JVM означает, что ваш исходный код на Kotlin будет компилироваться, или транслироваться, в байт-код Java для последующего выполнения под управлением JVM (рис. 1.17).

 

Рис. 1.17. Процесс компиляции и выполнения кода

Каждая платформа (например, Windows или macOS) имеет свой набор инструкций. Виртуальная машина JVM связывает байт-код с различными программными и аппаратными средствами, на которых работает JVM; она читает байт-код и выполняет соответствующие ему машинные инструкции. Это позволяет разработчикам на языке Kotlin только один раз написать платформенно независимый код, который после компиляции в байт-код будет выполняться на разных устройствах вне зависимости от операционной системы.

Так как Kotlin может транслироваться в байт-код для JVM, он считается JVM-языком. Вероятно, Java стал самым известным JVM-языком, потому что он был первым. Впоследствии появились другие JVM-языки — Scala, Groovy и Kotlin, которые были призваны устранить некоторые недостатки Java с точки зрения разработчиков.

Задание: арифметические вычисления в REPL

Большинство глав в этой книге заканчиваются одним или несколькими заданиями. Они позволят вам поработать самостоятельно и получить дополнительный опыт.

С помощью REPL изучите, как работают арифметические операторы в Kotlin: +, –, *, /, %. Например, введите (9+12)*2 в REPL. Соответствует ли вывод вашим ожиданиям?

Если хотите узнать больше, просмотрите список математических функций, поддерживаемых стандартной библиотекой Kotlin, по адресу kotlinlang.org/api/latest/jvm/stdlib/kotlin.math/ и поэкспериментируйте с ними в REPL. Например, min(94, -99) выведет наименьшее из двух чисел, указанных в скобках.

На этой стадии изучения языка вам стоит ознакомиться с веб-сайтом kotlinlang.org и особенно с размещенной на нем документацией. Если вы планируете использовать Kotlin вне JVM, обратите внимание на цветные метки рядом со ссылками на API. Они обозначают, какие платформы поддерживает данный API. Многие API, например absoluteValue (рис. 1.18), работают на всех платформах, поддерживаемых Kotlin.

 

Рис. 1.18. Поддержка платформ в документации API Kotlin

1 Есть русскоязычная версия страницы загрузки https://www.jetbrains.com/ru-ru/idea/download. Но упоминаемая далее инструкция доступна только на английском языке. — Примеч. ред.

Часть II. Базовый синтаксис

Если ограничиваться только переменными и командами вывода, много не напрограммируешь. В следующих пяти главах мы познакомим вас с фундаментальными компонентами, встречающимися практически в каждом приложении Kotlin.

Вы расширите проект bounty-board посредством базовых языковых средств. Если у вас уже есть опыт программирования на других языках, то скорее всего, все эти средства уже знакомы вам. Впрочем, даже в этом случае вы узнаете много полезного о том, как они работают в Kotlin.