Возвращение результата. Оператор return

Последнее обновление: 25.05.2021

Функция может возвращать некоторый результат. В этом случае после списка параметров через двоеточие указывается возвращаемый тип. А в теле функции применяется оператор return, после которого указывается возвращаемое значение.

Например, определим функцию, которая возвращает сумму двух чисел:

fun sum(x:Int, y:Int): Int{
    
    return x + y
}
fun main() {

    val a = sum(4, 3)
    val b = sum(5, 6)
    val c = sum(6, 9)
    println("a=$a  b=$b  c=$c")
}

В объявлении функции sum после списка параметров через двоеточие указывается тип Int, который будет представлять тип возвращаемого значения:

fun sum(x:Int, y:Int): Int

В самой функции с помощью оператора return возвращаем полученное значение - результат операции сложения:

return x + y

Так как функция возвращает значение, то при ее вызове это значение можно присвоить переменной:

val a = sum(4, 3)

Тип Unit

Если функция не возвращает какого-либо результата, то фактически неявно она возвращает значение типа Unit. Этот тип аналогичен типу void в ряде языков программирования, которое указывает, что функция ничего не возвращает. Например, следующая функция

fun hello(){
    println("Hello")
}

будет аналогична следующей:

fun hello() : Unit{
    println("Hello")
}

Формально мы даже можем присвоить результат такой функции переменной:

val d = hello()
val e = hello()

Однако практического смысла это не имеет, так как возвращаемое значение представляет объект Unit, который больше никак не применяется.

Если функция возвращает значение Unit, мы также можем использовать оператор return для возврата из функции:

fun checkAge(age: Int){
    if(age < 0 || age > 110){
        println("Invalid age")
        return
    }
    println("Age is valid")
}
fun main() {

    checkAge(-10)
    checkAge(10)
}

В данном случае если значение параметра age выходит за пределы диапазона от 0 до 110, то с помощью оператора return осуществляется выход из функции, и последующие инструкции не выполняются. При этом если функция возвращает значение Unit, то после оператора return можно не указывать никакого значения.

Помощь сайту
WebMoney
  • P378451176208
  • Z280152397659
ЮMoney/Яндекс-Деньги
  • 410011174743222
PayPal
  • metanit22@mail.ru
Перевод на карту
  • Номер карты: 4048415020898850