正确的结构定义

时间:2016-12-19 12:21:30

标签: elixir

如何以正确的方式定义结构,请查看以下代码片段:

defmodule SapOdataService.Worker do
  defstruct uri: "", user: nil, password: nil

我应该将默认值定义为nil还是?

1 个答案:

答案 0 :(得分:8)

您有几个选择。

  1. 您可以使用nil显式列出键值对,以获取空白值

    defmodule User do
      defstruct name: "zero_coding", age: nil
    end
    
  2. 您可以传递默认为nil的原子列表:

    defmodule User do
      defstruct [:name, :age]
    end
    
  3. 你可以混合使用以上默认为零的原子列表:

    defmodule User do
      defstruct [:age, name: "zero_coding"] 
    end
    
  4. 您还可以强制执行创建结构时必须指定的特定键

    defmodule User do
      @enforce_keys [:name]
      defstruct [:name, :age]
    end