Search code examples
kotlinconditional-operator

Kotlin Ternary Conditional Operator


What is the equivalent of this expression in Kotlin?

a ? b : c

This is not valid code in Kotlin.


Solution

  • 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.