User Tools

Site Tools


osnovnoy_syntacsis

Основной синтаксис

// 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
*/
osnovnoy_syntacsis.txt · Last modified: 2023/09/14 06:06 by 127.0.0.1