Order of operator precedence when using ":" (the colon)
Because the operator :
has precedence over +
so 1+1:3
is really 1+(1:3)
(i. e. 2:4
) and not 2:3
. Thus, to change the order of execution as defined operator precedence, use parentheses ()
You can see the order of precedence of operators in the help file ?Syntax
. Here is the relevant part:
The following unary and binary operators are defined. They are listed in precedence groups, from highest to lowest.
::
:::
access variables in a namespace$
@
component / slot extraction[
[[
indexing^
exponentiation (right to left)-
+
unary minus and plus:
sequence operator%any%
special operators (including%%
and%/%
)*
/
multiply, divide+
-
(binary) add, subtract