W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
當(dāng)我們討論映射時(shí),我們展示了如何獲取和更新映射中的領(lǐng)域.對與結(jié)構(gòu)體,還是同樣的技術(shù)(同樣的語法):
iex> john = %User{}
%User{age: 27, name: "John"}
iex> john.name
"John"
iex> meg = %{john | name: "Meg"}
%User{age: 27, name: "Meg"}
iex> %{meg | oops: :field}
** (KeyError) key :oops not found in: %User{age: 27, name: "Meg"}
當(dāng)使用更新符號(|
)時(shí),VM會意識到?jīng)]有新的鍵添加到結(jié)構(gòu)體中,同時(shí)會允許底層的映射分享它們的結(jié)構(gòu).上述例子中,john
和meg
在內(nèi)存中分享著相同的鍵結(jié)構(gòu).
結(jié)構(gòu)體也可用于模式匹配,需要同時(shí)匹配特定的鍵值和結(jié)構(gòu)體的類型:
iex> %User{name: name} = john
%User{age: 27, name: "John"}
iex> name
"John"
iex> %User{} = %{}
** (MatchError) no match of right hand side value: %{}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: