Infix Functions

An infix function is a function that appears in between two variables. Kotlin makes it easy to create functions like this.

Key points

  • Infix functions are declared similarly to extension functions
  • They are declared by writing infix fun at the start of the function definition
  • When applied like 1 plus 2, the function belongs to the variable on the left (1) and the variable on the right (2) is the function parameter
  • Can be used to create DSLs

Examples

Imagine that the + operator doesn’t exist and you want a function to add two integers, like this:

val x = 1 plus 1

Just write an infix function like this:

infix fun Int.plus(that: Int) = this + that

Here’s how it looks in the Kotlin REPL:

> 1 plus 1
2

Notes

Note the infix keyword:

infix fun Int.plus(that: Int) = this + that
-----

Notice that it’s an extension function for the Int type:

infix fun Int.plus(that: Int) = this + that
          ---

Understanding the “target” object

By changing the function:

infix fun Int.plus(that: Int): Int {
    println("this: ${this}, that: ${that}")
    return this + that
}

> 1 plus 2
this: 1, that: 2
3

You can see:

  • The variable on the left (1) is considered the target object
  • The variable on the right (2) is the function parameter

results matching ""

    No results matching ""