Kotlin Extension Functions
Adding functionality to existing classes
Extension Function
fun String.addExclamation(): String { # extend String class
return this + "!"
}
val text = "Hello".addExclamation() # returns "Hello!"
Extension with Parameters
fun String.repeat(n: Int): String { # extension with param
return this.repeat(n)
}
val result = "Hi".repeat(3) # returns "HiHiHi"
Extension Properties
val String.lastChar: Char # extension property
get() = this[this.length - 1]
val last = "Hello".lastChar # returns 'o'
Nullable Receiver
fun String?.orEmpty(): String { # extension on nullable type
return this ?: ""
}
val name: String? = null
val result = name.orEmpty() # returns ""