gpt4 book ai didi

list - 嵌套数据结构中的过滤/模式匹配

转载 作者:行者123 更新时间:2023-12-04 09:47:24 25 4
gpt4 key购买 nike

我是 Elixir 的新手,仍然对模式匹配感到困惑。
[%{name: "Deutschland", code: "DE"}, %{name: "Frankreich", code: "FR"}]

  def find_by_code([], _name), do: []
def find_by_code([h | t], query) do
if h[:code] == query do
IO.puts("MATCH")
IO.inspect(h)
else
IO.puts ("No match")
find_by_code(t, query)
end
end

这是通过代码查找国家的最佳方式吗?

最佳答案

您可以根据需要进行模式匹配:

def find_by_code([], _query),
do: nil # or whatever you want to mean "not found"

def find_by_code([%{code: query} = country|_t], query),
do: IO.inspect(country)

def find_by_code([_country|t], query),
do: find_by_code(t, query)

您也可以使用 Enum.find/3match?/2 ,这可能更具可读性(如另一个答案中所建议)。

关于list - 嵌套数据结构中的过滤/模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28239810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com