`c

`case` 在 Elixir

58 個練習

關於 `case`

case是一種控制流程結構,讓我們可以把某個值與許多模式做比較。case運算式中的子句會由上而下依序求值,直到找到相符的模式為止。

在許多情況下,使用case和定義多個函式子句是可以互換的。模式匹配和守衛都可以用在case子句裡。

# one function clause, multiple case clauses
def age_group(age) do
  case age do
    0 -> ~c"infant"
    age when age < 4 -> ~c"baby"
    age when age < 13 -> ~c"child"
    age when age < 18 -> ~c"teenager"
    _ -> ~c"adult"
  end
end

# multiple function clauses, no case
def age_group(0), do: ~c"infant"
def age_group(age) when age < 4, do: ~c"baby"
def age_group(age) when age < 13, do: ~c"child"
def age_group(age) when age < 18, do: ~c"teenager"
def age_group(_), do: ~c"adult"

要選用哪一種並沒有嚴格的規則,這取決於個人偏好,通常和當下的情境有關。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟

學習 `case`

練習已鎖定

再解鎖 2 個練習,就能練習 `case`