Ternary Operators
Ternary Operators are a special form of infix operators that have three operands and two operators. They can be declared by adding a second symbol to an
infix operator
declaration:infix operator ? : { precedence 100 }
While ternary operators can define a
precedence
, they may not have an associativity
attribute. The associativity can be viewed as if it was left
for the first operator and right
for the second operator. The following example illustrates how ternary operator expressions are grouped: a | b ? c + d : e * f
(a | b) ? (c + d) : (e * f)
a ? b ? c : d : e
a ? (b ? c : d) : e
a ? b : c ? d : e
a ? b : (c ? d : e)
While the standard library only defines the Ternary Conditional Operator
? :
, you can define your own custom ternary operators with any two symbols.Last modified 4yr ago