Интересная вещь о
fun foo(): String = "Hello World"
означает, что он использует синтаксис выражения и эквивалентен:
fun foo(): String {
return "Hello World"
}
Хотя простой возврат константы не очень полезен, использование синтаксиса выражений, избегая операторов {block}
и return
, позволяет гораздо более краткие определения функций в случае, когда вся функция может быть выражена в одном выражении.
Например, если foo()
был метод в классе, вы могли бы сказать привет со свойством этого класса:
class Hello(var what : String = "World") {
fun foo(): String = "Hello, $what!"
}
fun main() {
val hello = Hello()
println(hello.foo())
hello.what = "Universe"
println(hello.foo())
}
Это печатает:
Hello, World!
Hello, Universe!