1.2 KiB
Operators
In yq
expressions are made up of operators. Operators have 0-2 arguments and run against the current 'matching' nodes in the expression tree.
Lets look at a couple of examples.
The length
operator take no arguments, and will simply return the length of each matching node. So if there were 2 nodes, one string and one array, length will update the 'matching' nodes context to be two new numeric scalar nodes representing the lengths of the orignal 'matching' nodes.
The =
operator takes two arguments, a lhs
expression and rhs
expression. It runs the 'matching' nodes context against the lhs
expression to find the nodes to update, lets call it lhsNodes
, and then runs the matching nodes against the rhs
to find the new values, lets call that rhsNodes
. It updates the lhsNodes
values with the rhsNodes
values and returns the original matching nodes. This is important, where length changed the matching nodes to be new nodes with the length values, =
returns the original matching nodes, albeit with some of the nodes values updated. So .a = 3
will still return the parent matching node, but with the matching child updated.
Please see the individual operator docs for more information and examples.