假设我有一个结构struct = %MyApp.MyModel{ filled_with_data: "true }
。
如何在我的案例中获取结构名称(MyApp.MyModel
)?
答案 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__
应该