case文って固定値との比較しかできないと思ってました。
マニュアルによると、Guard節がcase文で使えると書いてある。
defmodule Elixir101 do
@doc """
## Examples
iex> Elixir101.sample1(3)
"two-ten"
"""
def sample1(n) do
case n do
1 -> "one"
_ when n <= 10 -> "two-ten"
_ -> "over ten"
end
end
end
使えました。
参考
https://hexdocs.pm/elixir/1.16.0-rc.0/patterns-and-guards.html#guards