Elixir:如何使结构可枚举

Posted

技术标签:

【中文标题】Elixir:如何使结构可枚举【英文标题】:Elixir: how to make struct enumerable 【发布时间】:2014-07-04 05:08:18 【问题描述】:

我有一个结构:

my_struct = %MyStructa: 1, b: 2

如何使其可枚举,以便可以在其上使用 Enum 方法?

【问题讨论】:

【参考方案1】:

您可以使用Map.to_list(struct) 代替Enum.to_list,因为结构只是带有__struct__ 键的映射。

【讨论】:

酷,谢谢。不过,我仍然想知道如何将其转换为 Enumerable - 以防万一。 你可以看这里:github.com/elixir-lang/elixir/blob/… 这是 Enumerable for Map 的实现。您可以很容易地为您的结构类型实现它以使其可枚举。 在即将发布的版本中,我们将支持@derive,因此您可以轻松获得 Enumerable 行为!

以上是关于Elixir:如何使结构可枚举的主要内容,如果未能解决你的问题,请参考以下文章

为啥元组在 Elixir 中不可枚举?

如何在 Elixir 中生成随机数?

未为结构实现协议可枚举。如何将结构转换为可枚举?

如何使 genserver 以频率值运行 Elixir

Elixir Enum vs Erlang列表

Elixir:来自函数的结构默认值