1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-25 23:11:16 +02:00
nix/doc/manual/src/language/operators.md
Valentin Gagarin caebe4112e reorder columns
this is for a simpler transformation into a series of subsections
2023-01-05 14:15:01 +01:00

7.3 KiB
Raw Blame History

Operators

The table below lists the operators in the Nix language, in order of precedence (from strongest to weakest binding).

Name Syntax Description Associativity Precedence
Select e . attrpath [ or def ] 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. none 1
Application e1 e2 Call function e1 with argument e2. left 2
Arithmetic Negation - e Arithmetic negation. none 3
Has Attribute e ? attrpath Test whether set e contains the attribute denoted by attrpath; return true or false. none 4
List Concatenation e1 ++ e2 List concatenation. right 5
Multiplication e1 * e2, Arithmetic multiplication. left 6
Division e1 / e2 Arithmetic division. left 6
Addition e1 + e2 Arithmetic addition. left 7
Subtraction e1 - e2 Arithmetic subtraction. left 7
String Concatenation string1 + string2 String concatenation. left 7
Not ! e Boolean negation. none 8
Update e1 // e2 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). right 9
Less Than e1 < e2, Arithmetic/lexicographic comparison. none 10
Less Than or Equal To e1 <= e2 Arithmetic/lexicographic comparison. none 10
Greater Than e1 > e2 Arithmetic/lexicographic comparison. none 10
Greater Than or Equal To e1 >= e2 Arithmetic/lexicographic comparison. none 10
Equality e1 == e2 Equality. none 11
Inequality e1 != e2 Inequality. none 11
Logical AND e1 && e2 Logical AND. left 12
Logical OR e1 || e2 Logical OR. left 13
Logical Implication e1 -> e2 Logical implication (equivalent to !e1 || e2). none 14