Table of Contents
Основной синтаксис
// TODO докопировать https://kotlinlang.ru/docs/reference/basic-syntax.html
Определение имени пакета
Имя пакета указывается в начале исходного файла, так же как и в Java:
package my.demo import java.util.* // ...
Но в отличие от Java, нет необходимости, чтобы структура пакетов совпадала со структурой папок: исходные файлы могут располагаться в произвольном месте на диске.
Объявление функции
Функция принимает два аргумента Int и возвращает Int:
fun sum(a: Int, b: Int): Int {
return a + b
}
Функция с выражением в качестве тела и автоматически определенным типом возвращаемого значения:
fun sum(a: Int, b: Int) = a + b
Функция, не возвращающая никакого значения (void в Java):
fun printSum(a: Int, b: Int): Unit {
print(a + b)
}
Тип возвращаемого значения Unit может быть опущен:
fun printSum(a: Int, b: Int) {
print(a + b)
}
Определение внутренних переменных
Неизменяемая (только для чтения) внутренняя переменная:
val a: Int = 1 val b = 1 // Тип `Int` выведен автоматически val c: Int // Тип обязателен, когда значение не инициализируется c = 1 // последующее присвоение
Изменяемая переменная:
var x = 5 // Тип `Int` выведен автоматически x += 1
Глобальные переменные:
val PI = 3.14
var x = 0
fun incrementX() {
x += 1
}
Комментарии
Также, как Java и JavaScript, Kotlin поддерживает однострочные комментарии.
// однострочный комментарий /* Блочный комментарий из нескольких строк. */
В отличие от Java, блочные комментарии могут быть вложенными.
Использование строковых шаблонов
Допустимо использование переменных внутри строк в формате $name или ${name}:
fun main(args: Array<String>) {
if (args.size == 0) return
print("Первый аргумент: ${args[0]}")
}
var a = 1
// просто имя переменной в шаблоне:
val s1 = "a равно $a"
a = 2
// произвольное выражение в шаблоне:
val s2 = "${s1.replace("равно", "было равно")}, но теперь равно $a"
/*
Результат работы программы:
a было равно 1, но теперь равно 2
*/