nix-super/doc/manual/src/expressions/language-operators.md
2020-07-23 18:26:48 +02:00

7.1 KiB
Raw Blame History

Operators

table_title lists the operators in the Nix expression language, in order of precedence (from strongest to weakest binding).

Name Syntax Associativity Description Precedence
Select e . attrpath [ or def ] none Select attribute denoted by the attribute path attrpath from set e. (An attribute path is a dot-separated list of attribute names.) If the attribute doesnt exist, return def if provided, otherwise abort evaluation. 1
Application e1 e2 left Call function e1 with argument e2. 2
Arithmetic Negation - e none Arithmetic negation. 3
Has Attribute e ? attrpath none Test whether set e contains the attribute denoted by attrpath; return true or false. 4
List Concatenation e1 ++ e2 right List concatenation. 5
Multiplication e1 * e2, left Arithmetic multiplication. 6
Division e1 / e2 left Arithmetic division. 6
Addition e1 + e2 left Arithmetic addition. 7
Subtraction e1 - e2 left Arithmetic subtraction. 7
String Concatenation string1 + string2 left String concatenation. 7
Not ! e none Boolean negation. 8
Update e1 // e2 right Return a set consisting of the attributes in e1 and e2 (with the latter taking precedence over the former in case of equally named attributes). 9
Less Than e1 < e2, none Arithmetic comparison. 10
Less Than or Equal To e1 <= e2 none Arithmetic comparison. 10
Greater Than e1 > e2 none Arithmetic comparison. 10
Greater Than or Equal To e1 >= e2 none Arithmetic comparison. 10
Equality e1 == e2 none Equality. 11
Inequality e1 != e2 none Inequality. 11
Logical AND e1 && e2 left Logical AND. 12
Logical OR e1 || e2 left Logical OR. 13
Logical Implication e1 -> e2 none Logical implication (equivalent to `!e1 |\
e2`). 14

Operators