Erlang - 模式匹配



模式看起來與術語相同——它們可以是簡單的字面量,如原子和數字,也可以是複合的,如元組和列表,或者兩者的混合。它們還可以包含變數,變數是首字母大寫或下劃線開頭的字母數字字串。一個特殊的“匿名變數”_(下劃線)用於當您不關心要匹配的值時,並且不會使用它。

如果模式與要匹配的術語具有相同的“形狀”,並且遇到的原子相同,則模式匹配成功。例如,以下匹配成功:

  • B = 1。
  • 2 = 2.
  • {ok, C} = {ok, 40}。
  • [H|T] = [1, 2, 3,4]。

請注意,在第四個示例中,管道(|)表示列表的頭和尾,如術語中所述。還要注意,左側應與右側匹配,這是模式的正常情況。

以下模式匹配示例將失敗。

  • 1 = 2.
  • {ok, A} = {failure, "Don't know the question"}。
  • [H|T] = []。

在模式匹配運算子的情況下,失敗會生成錯誤,並且程序退出。如何在錯誤中捕獲和處理這一點將在錯誤中介紹。模式用於選擇將執行哪個函式子句。

廣告

© . All rights reserved.