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