2016-12-19 13 views
1

どのように次のコードスニペットを見て、正しい方法で構造体を定義するには?正しい構造体の定義

+2

があなたのユースケースに依存構造体を作成する際に指定する必要があり、特定のキーを強制することができますが、カスタムのデフォルト値を定義するか、またはちょうどにアトムのリストを渡すことができます ' defstruct'となり、すべての値がデフォルトとしてゼロになります。これはあなたの場合には当てはまります。 – JustMichael

+0

私の場合によっては何が意味ですか? –

+0

まあ、時には、 'url'という値は、デフォルト値としてnilを残すのが理にかなっています。時には" https://example.com "をデフォルト値にするのが理にかなっています。空の文字列などが含まれます。これは完全にあなた次第であり、あなたの状況に適したものと思われるものです。 – JustMichael

答えて

2

あなたはいくつかの選択肢があります。

defmodule User do 
    defstruct [:name, :age] 
end 
  • :あなたが明示的にnilになり、すべてのデフォルトの原子のリストを渡すことができ、ブランク値に対するnil

    defmodule User do 
        defstruct name: "zero_coding", age: nil 
    end 
    
  • を使用して、キーと値のペアを一覧表示することができます

    1. 上記の原子のリストを混在させると、デフォルトではゼロになります。

      defmodule User do 
          defstruct [:age, name: "zero_coding"] 
      end 
      
    2. あなたはまた、

      defmodule User do 
          @enforce_keys [:name] 
          defstruct [:name, :age] 
      end 
      
  • 関連する問題