# Kotlin Infix Notation is Confusing

## If you see a method call that have space between, it is likely a Kotlin infix notation.

Whenever I read Kotlin code that has infix notation, it always confuses me. Maybe I should say I still haven't gotten used to it? Honestly, it is just sugar syntax in my opinion.

For example:

```
val result = 2 plus 3
```

is the same as

```
val result = 2.plus(3)
```

2 is the `Int`

object. `plus()`

is the method of `Int`

. 3 is `Int`

parameter for `Int.plus()`

The `plus()`

method definition looks like this. It is an extension method of `Int`

.

```
infix fun Int.plus(other: Int): Int {
return this + other
}
```

Another good example is `plugins`

in the **build.gradle.kts** file.

```
plugins {
id("com.android.application") version "7.4.2" apply false
}
```

Can you see the spaces between the `version`

and `apply`

? Yupe, these are the infix functions.

You can rewrite it to

```
plugins {
id("com.android.application").version("7.4.2").apply(false)
}
```

These are the function signatures. As you can see, infix notation is used.

```
infix fun PluginDependencySpec.version(version: String?): PluginDependencySpec = version(version)
infix fun PluginDependencySpec.apply(apply: Boolean): PluginDependencySpec = apply(apply)
```

There are some specific requirements that you must follow to define an infix function:

**Must be methods/member functions**(functions in a class)**Must have a single parameter**with**no default value**

For details, you can refer to the official doc here.