小编Yar*_* V.的帖子

如何在定义了结构的模块内部访问结构[Elixir]

我刚开始学习Elixir,但是具有使用多种OOP语言(主要是Ruby)的编程背景。我找到了示例如何在模块内部定义结构:

defmodule Example.User do
  defstruct name: "Sean", roles: []
end
Run Code Online (Sandbox Code Playgroud)

另外,我发现我可以在创建结构时设置此值: steve = %Example.User{name: "Steve", roles: [:admin, :owner]} 并且可以通过调用在模块外部访问它 steve.name

问题是,如何访问结构数据INSIDE模块,所以让我说我想从call_my_name函数访问name字段:

defmodule Example.User do
  defstruct name: ""
  def call_my_name do
     IO.write(???)
  end 
end
martin = %Example.User{name: "Martin"}
Run Code Online (Sandbox Code Playgroud)

就OOP而言,我只是想编写一个getter

我该怎么做?一种好的/默认的方法是什么?如果不能,为什么?

elixir

4
推荐指数
2
解决办法
1718
查看次数

标签 统计

elixir ×1