Elixir根据其参数值将函数调用与其主体匹配。
defmodule Math do def factorial(0): do: 1 def factorial(n): do: n * factorial(n - 1) end
在此,正数阶乘与第二个子句factorial(0)匹配,而与第一个子句匹配。(为简单起见,忽略负数)。Elixir尝试从上到下匹配功能。如果将第二个函数写在第一个函数之上,则进行无穷递归时,我们将得到意外的结果。因为factorial(0)匹配到factorial(n)
友情链接: json在线解析 通晓查询 糯晒黄历 姓名打分