如何在elixir中获取结构名称?

时间:2016-09-21 13:38:07

标签: elixir

假设我有一个结构struct = %MyApp.MyModel{ filled_with_data: "true }

如何在我的案例中获取结构名称(MyApp.MyModel)?

4 个答案:

答案 0 :(得分:21)

它存储在名为__struct__的字段中,因此struct.__struct__ == MyApp.MyModel

答案 1 :(得分:14)

您还可以通过模式匹配获取结构名称:

%name{} = struct

答案 2 :(得分:2)

如果你需要结构的名称作为没有" Elixir的字符串。"前缀,但保留您可以执行的任何模块前缀:

name = your_map.__struct__
       |> Module.split
       |> Enum.join(".")

答案 3 :(得分:1)

结构携带__struct __

其中的字段。所以,

struct.__struct__

应该