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)
 |