Elixir Notes: Variables
26th January 2021
Define a variable in Elixir with the equals (=) operator.
Note
The = operator is also used for pattern matching.
elixir
# Valid variable assignments
stuff = "stuff"
valid_variable = "Hi im valid"
_me_too = "Im also valid"
me_good? = true
# Valid variable assignments but discouraged
dontDoThis = "Hi from Java"
# Invalid variable assignments
BooHoo = "Im invalid and will cause an error" # -> ** (MatchError) no match of right hand side value: "Im invalid and will cause an error"
# To perform a pattern match rather than an assignment
# Prefix the left hand side with the ^ operator.
^stuff = "things" # -> ** (MatchError) no match of right hand side value: "things"
Considerations
- Variables can start with a lowercase [a-z] or an underscore _
- Variables can contain upper/lower case [a-zA-Z] and the _ underscore characters.
- snake_case is the formatting convention used for variable naming.
- Variables can end with a question mark ? or an exclaimation mark !
- Variables that have been previously assigned can be reassigned in Elixir. This differs from Erlang.
- If a variable is reassigned the value in the memory address is not mutated. The variable is assigned a new memory address.
Links
https://elixir-lang.org/crash-course.html#variable-names
https://learning.oreilly.com/library/view/elixir-in-action/9781617295027/c02.xhtml