This is the operator known from C language ( condition ? expression : expression). The first operand is expression that can evaluate to boolean, types of second and third operands are code dependent. The result of the triple operator expression is the second operand in the case the first operand (condition) evaluates to true, the third one otherwise.
Code | Result | Comment |
---|---|---|
(3 > 2) ? true : false | true | The expression (3 > 2) evaluates to true, the result is true |
contains ([1, 2, 3], 5) ? "yes" : "no" | "no" | The expression contains ([1, 2, 3], 5) evaluates to false, the result is "no" |
(size ([]) > 0) ? 1 : -1 | -1 | The expression size ([]) > 0 evaluates to false, the result is -1 |
![]() | Note |
---|---|
Using brackets makes code cleaner, but is not necessary (according to operators precedence). |
![]() | Note |
---|---|
With the introduction of the index operator ( a = mapvar["key"]:default ), the sequence "]:" became a lexical token usable only for indexing, so watch out when using the triple operator with lists and maps. Use parentheses or white space. |