Ternary operator ( ? : )¶
Marcel supports ternary operator like in Java. This operator have 3 operands: 1. the condition expression 2. the 'true' expression 3. the 'false' expression.
This operator evaluates the condition. It can be any kind of expression, as the Marcel truth will determine if the expression is truthy or not, for non-boolean expressions.
If the condition expression is truthy, the 'true' expression will be evaluated, otherwise it will be the 'false' expression.
E.g.
int temperature = isSunny() ? 21 : -5
println(temperature)
fun bool isSunny() -> return true
This script will print the value 21
Let's take a look at another example.
Integer input = null
Integer a = input ? input : 34
println(a)
This script will print the value 34
Note that this last example can be simplified using the Elvis operator
Elvis operator¶
The Elvis operator is just a simplified ternary operator in which the condition expression and the 'true' expression are the same.
You could translate the above example using the below code
Integer input = null
Integer a = input ?: 34
println(a)