47 lines
		
	
	
		
			685 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			685 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Extension Functions
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Extension Functions
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Kotlin supports extension functions & extension variables, which allow you to add new functionality to a class without modifying the class itself.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Basic Usage
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Extension Function
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```kotlin
							 | 
						||
| 
								 | 
							
								fun String.containsSpaces(): Boolean {
							 | 
						||
| 
								 | 
							
								  return contains(" ")
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								val myString = "Hello World"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								print(myString.containsSpaces())
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Output:
							 | 
						||
| 
								 | 
							
								```shell
							 | 
						||
| 
								 | 
							
								true
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Extension Variable
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```kotlin
							 | 
						||
| 
								 | 
							
								val <T> List<T>.lastIndex: Int
							 | 
						||
| 
								 | 
							
								    get() = size - 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								val myList = listOf(1,2,3,4,5)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								print(myList.lastIndex)
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Output:
							 | 
						||
| 
								 | 
							
								```shell
							 | 
						||
| 
								 | 
							
								4
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Resources
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* [Kotlin Extensions](https://kotlinlang.org/docs/reference/extensions.html)
							 |