DSL reference: operators¶
Operator precedence¶
Operators are listed in order of decreasing precedence, highest first.
Operators Associativity
--------- -------------
() left to right
** right to left
! ~ unary+ unary- & right to left
binary* / // % left to right
binary+ binary- . left to right
<< >> left to right
& left to right
^ left to right
| left to right
< <= > >= left to right
== != =~ !=~ left to right
&& left to right
^^ left to right
|| left to right
? : right to left
= N/A for Miller (there is no $a=$b=$c)
Operator and function semantics¶
Functions are often pass-throughs straight to the system-standard Go libraries.
The
minandmaxfunctions are different from other multi-argument functions which return null if any of their inputs are null: forminandmax, by contrast, if one argument is absent-null, the other is returned. Empty-null loses min or max against numeric or boolean; empty-null is less than any other string.Symmetrically with respect to the bitwise OR, XOR, and AND operators
|,^,&, Miller has logical operators||,^^,&&: the logical XOR not existing in Go.The exponentiation operator
**is familiar from many languages.The regex-match and regex-not-match operators
=~and!=~are similar to those in Ruby and Perl.