Kotlin Infix Functions Tutorial 🚀

beginner
5 min

Kotlin Infix Functions Tutorial 🚀

Welcome to our deep dive into Kotlin's infix functions! In this lesson, we'll explore this powerful feature that makes Kotlin's syntax stand out. By the end, you'll be able to create your own infix functions and write cleaner, more expressive code. 🎉

What are Infix Functions? 💡

Infix functions allow you to define operators that can be used in a similar way to mathematical operators, between any two expressions. This makes your code more readable and intuitive, as you'll see in the examples below.

Creating an Infix Function 🎯

Let's start by creating a simple infix function:

kotlin
infix fun Int.times(other: Int) = this * other fun main() { val a = 5 val b = 3 println(a * b) // Output: 15 println(a times b) // Output: 15 }

In the above example, we've defined an infix function times for the Int type, which behaves like the multiplication operator *. Now we can use times just like we use *, making our code easier to read. 📝

Infix Functions and Operator Overloading 💡

Infix functions are a form of operator overloading, where we create our own custom operators. This allows us to define new meanings for existing operators or create entirely new ones.

Here's an example of creating a custom operator:

kotlin
infix fun String.plusMe(other: String) = "$this $other" fun main() { val greeting = "Hello" val name = "World" println(greeting + name) // Output: Hello World println(greeting plusMe name) // Output: Hello World }

In this example, we've created a plusMe infix function for the String type, which concatenates the strings. Again, this makes our code more readable and easier to understand.

Infix Functions and Precedence 📝

When using multiple infix functions or a mix of infix functions and regular functions, the precedence can be crucial. In Kotlin, you can control the precedence using the prefix and postfix keywords.

Here's an example:

kotlin
prefix fun Int.preInfix(other: Int) = this - other infix fun Int.times(other: Int) = this * other fun main() { val a = 5 val b = 3 println(3 preInfix 5 times 2) // Output: 1 }

In this example, we've defined a preInfix function with the prefix keyword, which is evaluated before the times infix function.

Quiz Time 🎯

Quick Quiz
Question 1 of 1

What does the `infix` keyword do in Kotlin?


That's it for our Kotlin Infix Functions tutorial! With these concepts in your toolbox, you'll be able to write more expressive and readable code. Keep practicing, and happy coding! 🚀