Weird Operator Uses in Elixir
=
is match, not assignment (sometimes they're equivalent)
<>
is string concatenation
[a | b]
is a pipe used within squares and appends the left hand side to the right hand side when the right hand side is a list.
++
is an append operator for lists
[1, 2, 3] ++ [4] == [1, 2, 3, 4]
--
is a subtraction operator for lists.
[1, 2, 3] -- [1, 2] == [3]
in
checks to see if an element is included in a list.
1 in [1] == true
===
works with numbers and returns false
when comparing numbers of different types that would otherwise be equivalent.
(1 === 1.0) == false; (1 == 1.0) == true
^
is the pin operator, it switches a variable from assignable to matchable.
iex > a = 1; {^a, b} = {1, 2};
{1, 2}
iex > a = 1; {^a, b} = {2, 2};
** (MatchError) no match of right hand side value: {2, 2}
iex > a = 1; {a, b} = {2, 2};
{2, 2}
Tweet