Single expression functions
Usually, a function must declare its return type; an exception exists only for functions that consist of a single expression. These are often referred to as one line or single line functions. Such functions can use a shortened syntax that omits the braces and uses the =
symbol before the expression rather than the return
keyword:
fun square(k: Int) = k * k
Notice how the function does not need to declare the return value of Int
. This is inferred by the compiler. The rationale behind this feature is that very short functions are easy to read, and the return value is a bit of extra noise that doesn't add much to the overall process. However, you can always include the return value if you think it makes things clearer:
fun square2(k: Int): Int = k * k
Single expression functions can always be written in regular style if desired. For example, the following two functions are identical and compiled to the same bytecode:
fun concat1(a: String, b: String...