57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: Functions
 | 
						|
---
 | 
						|
 | 
						|
# Functions
 | 
						|
 | 
						|
### Basic Usage
 | 
						|
 | 
						|
#### Declaration
 | 
						|
 | 
						|
`fun` keyword is used to define the function  
 | 
						|
`a` and `b` are input parameters of type `Int`  
 | 
						|
`Int` (after brackets) is matching the return type  
 | 
						|
```kotlin
 | 
						|
fun sum(a: Int, b: Int): Int {
 | 
						|
   return a + b
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
Same expression can be shortened (omit function brackets), meaning that return type is infered.  
 | 
						|
Return keyword can be also omited in such expression body
 | 
						|
```kotlin
 | 
						|
fun sum(a: Int, b: Int) = a + b
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
Return type can also be omitted (you don't have to use `void` return type) if function does not return anything
 | 
						|
```kotlin
 | 
						|
fun printSum(a: Int, b: Int) {
 | 
						|
    println("sum of $a and $b is ${a + b}")
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
#### Usage
 | 
						|
 | 
						|
 | 
						|
Simple method call:
 | 
						|
```kotlin
 | 
						|
val result = sum(2, 3)
 | 
						|
```
 | 
						|
 | 
						|
Named arguments in method call:
 | 
						|
```kotlin
 | 
						|
val result = sum(a = 1, b = 5)
 | 
						|
```
 | 
						|
 | 
						|
Support of default arguments (if parameter is not provided in method call):
 | 
						|
```kotlin
 | 
						|
fun write(content: String, destination: String = "/tmp/") { ... }
 | 
						|
```
 | 
						|
 | 
						|
#### Resources
 | 
						|
* [Basic Syntax Reference](https://kotlinlang.org/docs/reference/basic-syntax.html)
 | 
						|
* [Kotlin Functions Reference](https://kotlinlang.org/docs/reference/functions.html)
 |