If Else in Elixir
Branching with if and else in Elixir is straightforward.
defmodule IfElseExample do
def run do
# Here's a basic example.
if rem(7, 2) == 0 do
IO.puts("7 is even")
else
IO.puts("7 is odd")
end
# You can have an `if` statement without an else.
if rem(8, 4) == 0 do
IO.puts("8 is divisible by 4")
end
# Logical operators like `and` and `or` are often useful in conditions.
if rem(8, 2) == 0 or rem(7, 2) == 0 do
IO.puts("either 8 or 7 are even")
end
# A variable can be assigned within the condition;
# it will be available in all branches.
num = 9
cond do
num < 0 -> IO.puts("#{num} is negative")
num < 10 -> IO.puts("#{num} has 1 digit")
true -> IO.puts("#{num} has multiple digits")
end
end
end
IfElseExample.run()Note that in Elixir, you don’t need parentheses around conditions, but the do and end keywords are required to define the block.
To run the program:
$ elixir if_else_example.exs
7 is odd
8 is divisible by 4
either 8 or 7 are even
9 has 1 digitIn Elixir, there’s no direct equivalent to Go’s ability to declare a variable in an if statement. Instead, we typically assign the variable before the conditional structure.
Also, Elixir doesn’t have a direct else if construct. For multiple conditions, it’s common to use cond as shown in the last example. Alternatively, you can nest if statements or use pattern matching with case.
Elixir also provides a ternary-like operator with the if macro:
result = if condition, do: value1, else: value2This can be useful for simple conditional assignments.