====== Основной синтаксис ======
====== // 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) {
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
*/