Kotlin для начинающих. Начало работы


Введение

  • Эта серия статей будет посвящена пониманию языка программирования Kotlin. Первые 3 поста будут легким введением в язык и его возможности, а последующие посты будут глубоким погружением в определенные аспекты языка.

GitHub

  • GitHub для этого проекта можно найти ЗДЕСЬ

Что такое Kotlin?

  • Kotlin — это статически типизированный (мы должны объявлять наши типы) язык с открытым исходным кодом. В 2019 году на мероприятии Google I/O компания google объявила, что разработка Android будет все больше Kotlin first. Это означает, что если вы хотите создавать проекты для Android, то вам следует изучить Kotlin. Итак, давайте изучать Kotlin.

Начало работы

  • Прежде чем мы создадим нашу любимую программу Hello world, нам понадобится среда, в которой мы будем программировать. Для создания этой среды мы будем использовать Gradle. Если вы никогда раньше не использовали Gradle или не слышали о нем, не волнуйтесь, это просто модный инструмент, который позволяет упорядочить наш код.
  • Поэтому, прежде чем двигаться дальше, убедитесь, что Gradle установлен на вашей машине.
  • Теперь, чтобы создать Kotlin-проект, вы должны следовать официальному руководству Gradle, которое можно найти ЗДЕСЬ, а затем открыть проект в выбранной вами IDE.

Hello World

  • Итак, благодаря Gradle у нас с вами есть подходящая структура папок. Теперь найдите путь в файл App.kt и удалите текущую главную функцию, заменив ее на эту:
fun main() {
    println("Hello, world!")
}
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Чтобы запустить эту функцию, все, что нам нужно сделать, это выполнить команду gradle run в командной строке (убедитесь, что вы находитесь в той же папке, что и наш проект Gradle). На выходе должно получиться Hello, world!.

  • Теперь давайте разберемся, что означает весь этот странный синтаксис.

  • Ключевое слово fun используется для объявления функции. Именно поэтому ботаники Kotlin (мы) говорят, что программирование на Kotlin — это весело. Функции также не обязательно должны принадлежать классу, как в Java. Оператор println("Hello, world!") используется вместо классического оператора System.out.println. Именно поэтому Kotlin называют очень выразительным языком. Нам нужно набрать совсем немного, чтобы сделать многое. Также обратите внимание, что нам не нужно заканчивать строку двоеточием.

Функции

  • Как видно из нашей функции hello world, мы можем объявить функцию без типа возврата, просто не указывая тип возврата. В связи с этим, конечно, возникает вопрос, как объявить тип возврата? Мы можем сделать это следующим образом:
fun max(a: Int,b:Int): Int{
    return if(a>b) a else b
}
Войти в полноэкранный режим Выйти из полноэкранного режима
  • очень похоже на нашу функцию hello world. Однако обратите внимание, что мы объявили типы для переменных a: Int, b:Int и для возвращаемого значения функции : Int. В Kotlin типы возврата функций располагаются после списка параметров.

Утверждение и выражения

  • Внимательные наблюдатели за функцией max, возможно, заметили, как необычно мы написали оператор if. На самом деле, это вовсе не оператор if, в Kotlin if считается выражением. Разница между выражением и утверждением заключается в том, что выражение возвращает значение, которое может быть использовано как часть другого выражения. В то время как выражение не имеет собственного многократно используемого значения. В Java if всегда является выражением.

Упрощение функции

  • Поскольку наша функция max() состоит из одного выражения, мы можем убрать фигурные скобки и оператор return, что даст нам результат:
fun max2(a:Int,b:Int) = if(a > b) a else b

Войти в полноэкранный режим Выйти из полноэкранного режима
  • Такой тип функции без фигурных скобок называется тело выражения. Функции с фигурными скобками называются block body.
  • Возможно, вы также заметили, что мы удалили возвращаемый тип. Что кажется странным для статически типизированного языка. Если мы не объявляем тип возврата, как Kotlin узнает, что возвращать? Компилятор анализирует выражение, используемое в качестве тела функции, и использует его тип в качестве возвращаемого типа функции. Этот тип анализа называется type inference (подробнее об этом в следующих постах).
  • Однако опускать возвращаемый тип можно только для функций с телом выражения (функция без фигурных скобок). Для функции с телом блока (с фигурными скобками) мы ОБЯЗАНЫ определить возвращаемый тип.

Переменные

  • В Java мы начинаем объявление переменной с указания типа. В Kotlin это делается иначе. Kotlin позволяет нам начинать с ключевого слова, и мы можем поместить или не поместить тип после имени переменной, например, так:
    val another = "one"
    val age = 63;
    var secondAge: Int = 33
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Как и в предыдущей функции тела выражения, если мы не указываем тип, компилятор анализирует выражение инициализатора и использует его тип в качестве типа переменной.

Var против Val

val : сокращение от value, переменная, объявленная с помощью val, не может быть переназначена после инициализации значением. Аналогично ключевому слову final в Java.

var : сокращение от переменной, переменные, объявленные с помощью var, могут быть переназначены столько раз, сколько мы захотим.

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

Заключение

  • Спасибо, что нашли время прочитать эту статью в моем блоге. Если у вас возникли вопросы или проблемы, пожалуйста, комментируйте их ниже или свяжитесь со мной в Twitter.

Оцените статью
Procodings.ru
Добавить комментарий