Kotlin Ternary Conditional Operator

Drew Noakes picture Drew Noakes · May 2, 2013 · Viewed 115.2k times · Source

What is the equivalent of this expression in Kotlin?

a ? b : c

This is not valid code in Kotlin.

Answer

Drew Noakes picture Drew Noakes · May 2, 2013

In Kotlin, if statements are expressions. So the following code is equivalent:

if (a) b else c

The distinction between expression and statement is important here. In Java/C#/JavaScript, if forms a statement, meaning that it does not resolve to a value. More concretely, you can't assign it to a variable.

// Valid Kotlin, but invalid Java/C#/JavaScript
var v = if (a) b else c

If you're coming from a language where if is a statement, this might seem unnatural but that feeling should soon subside.