In this tutorial, we aim to provide you with a comprehensive guide on how to build custom utilities with extensions in Kotlin. We'll demonstrate how you can extend the functionality of existing classes to create more readable and maintainable code.
By the end of this tutorial, you will learn:
- The basics of extension functions
- How to create and use custom utility functions with extensions in Kotlin
Prerequisites:
- Basic understanding of Kotlin programming language
- Basic knowledge of object-oriented programming concepts
In Kotlin, extension functions allow you to "add" methods to existing classes without inheriting from them. You can call these methods just like any other regular methods on this class.
Let's start by creating a simple extension function for the String
class:
fun String.addExclamation(): String {
return this + "!"
}
Here, we've created an extension function addExclamation()
, that adds an exclamation mark at the end of any string.
Let’s dive deeper with more examples.
Example 1:
// Extension function for String class
fun String.addExclamation(): String {
return this + "!"
}
fun main() {
val greeting = "Hello World"
println(greeting.addExclamation()) // Output: Hello World!
}
Explanation: In this code, we have added an extension function addExclamation()
to the String
class. In the main function, we call this extension function on a String
object greeting
.
Example 2:
// Extension function for List class
fun List<String>.printList() {
for (item in this) {
println(item)
}
}
fun main() {
val fruits = listOf("Apple", "Banana", "Cherry")
fruits.printList()
// Output:
// Apple
// Banana
// Cherry
}
Explanation: In this example, we have added an extension function printList()
to the List
class. This function prints out each item in the list. In the main function, we call this extension function on a List
object fruits
.
In this tutorial, we've covered how to create and use custom utilities with extensions in Kotlin. You've learned how to extend the functionality of existing classes and how to make your code more readable and maintainable.
For further learning, consider exploring more about Kotlin's other features such as null safety, lambda expressions, and coroutines. You can refer to the official Kotlin documentation for more information.
Here are some exercises for you to practice:
Int
class that checks if an integer is even.List
class that returns the sum of all integers in the list.Solutions:
fun Int.isEven(): Boolean {
return this % 2 == 0
}
Explanation: This function returns true
if the integer is divisible by 2, and false
otherwise.
fun List<Int>.sumList(): Int {
var sum = 0
for (item in this) {
sum += item
}
return sum
}
Explanation: This function iterates over each integer in the list, adds them up, and returns the sum.