gpt4 book ai didi

elixir - 将嵌套元组转换为 elixir 中的列表

转载 作者:行者123 更新时间:2023-12-04 18:02:44 25 4
gpt4 key购买 nike

试图做:

def nested_tuple_to_list(tuple) when is_tuple(tuple) do
...
end

期望得到:
    iex> example = {"foo", "bar", {"foo", "bar"}}
iex> example_as_list = nested_tuple_to_list(example)
iex> example_as_list
["foo", "bar", ["foo", "bar"]]

我的问题是最好的方法是什么?

最佳答案

使用 Tuple.to_list/1并使用相同的函数映射结果列表,并为非元组输入添加回退子句:

defmodule A do
def nested_tuple_to_list(tuple) when is_tuple(tuple) do
tuple |> Tuple.to_list |> Enum.map(&nested_tuple_to_list/1)
end
def nested_tuple_to_list(x), do: x
end

{"foo", "bar", {"foo", "bar"}} |> A.nested_tuple_to_list |> IO.inspect

输出:
["foo", "bar", ["foo", "bar"]]

如果您还想转换列表中的元组,您可以添加:
def nested_tuple_to_list(list) when is_list(list) do
list |> Enum.map(&nested_tuple_to_list/1)
end

这也可以很容易地扩展到处理 map 。

关于elixir - 将嵌套元组转换为 elixir 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41488235/

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