我刚开始学习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 ×1