如何以正确的方式定义结构,请查看以下代码片段:
defmodule SapOdataService.Worker do
defstruct uri: "", user: nil, password: nil
Run Code Online (Sandbox Code Playgroud)
我应该将默认值定义为nil还是?
你有几个选择.
您可以使用nil空白值明确列出键值对
defmodule User do
defstruct name: "zero_coding", age: nil
end
Run Code Online (Sandbox Code Playgroud)你可以传递一个默认为nil的原子列表:
defmodule User do
defstruct [:name, :age]
end
Run Code Online (Sandbox Code Playgroud)你可以混合使用以上默认为nil的原子列表:
defmodule User do
defstruct [:age, name: "zero_coding"]
end
Run Code Online (Sandbox Code Playgroud)您还可以强制创建结构时必须指定的特定键
defmodule User do
@enforce_keys [:name]
defstruct [:name, :age]
end
Run Code Online (Sandbox Code Playgroud)