【发布时间】:2014-05-13 12:44:44
【问题描述】:
我想使用以下模式为 Elixir 函数指定 4 个子句: i) 字符串列表 ii) 号码列表 iii) 字符串元组 iv) 数字元组
我该怎么做?
【问题讨论】:
我想使用以下模式为 Elixir 函数指定 4 个子句: i) 字符串列表 ii) 号码列表 iii) 字符串元组 iv) 数字元组
我该怎么做?
【问题讨论】:
大概是这样的:
def foo([]), do: :empty
def foo([h|t]) when is_binary(h), do: :list_of_strings
def foo([h|t]) when is_number(h), do: :list_of_numbers
def foo(tuple) when is_tuple(tuple) do
# Convert tuple to list of stuff, then recursively call foo
tuple |> tuple_to_list |> foo
end
最后一个子句假设您不关心从 foo 获取元组。
【讨论】:
Enum 中的一个函数来检查整个列表/tuple 如果你需要那个保证。