Elixir 定義結(jié)構(gòu)體

2023-12-15 14:50 更新
可以使用defstruct結(jié)構(gòu)定義結(jié)構(gòu)體:
iex> defmodule User do
...>   defstruct name: "John", age: 27
...> end

defstruct中使用的關(guān)鍵詞列表定義了結(jié)構(gòu)體領(lǐng)域中的默認(rèn)值.

結(jié)構(gòu)體會(huì)以其定義所處于的模塊來(lái)命名.比如上面的例子中,我們定義了一個(gè)名為User的結(jié)構(gòu)體.

我們現(xiàn)在可以用與創(chuàng)建映射類(lèi)似的語(yǔ)法來(lái)創(chuàng)建結(jié)構(gòu)體User:

iex> %User{}
%User{age: 27, name: "John"}
iex> %User{name: "Meg"}
%User{age: 27, name: "Meg"}

結(jié)構(gòu)體提供了編譯時(shí)確認(rèn),也就是只有在?defsturct?中定義了的領(lǐng)域能夠存在于一個(gè)結(jié)構(gòu)體中:

iex> %User{oops: :field}
** (CompileError) iex:3: unknown key :oops for struct User


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)