W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Elixir提供了可枚舉性的概念,以及?Enum
?模塊來操作它們。我們已經(jīng)學(xué)習(xí)了兩個(gè)可枚舉結(jié)構(gòu):列表和映射。
iex> Enum.map([1, 2, 3], fn x -> x * 2 end)
[2, 4, 6]
iex> Enum.map(%{1 => 2, 3 => 4}, fn {k, v} -> k * v end)
[2, 12]
?Enum
?模塊提供了巨量的函數(shù)用于對(duì)可枚舉體中的元素進(jìn)行變換,排序,組合,篩選和檢索。這是Elixir開發(fā)者最常用的模塊之一。
Elixir也提供范圍:
iex> Enum.map(1..3, fn x -> x * 2 end)
[2, 4, 6]
iex> Enum.reduce(1..3, 0, &+/2)
6
Enum模塊中的函數(shù)只適用于對(duì)數(shù)據(jù)結(jié)構(gòu)中的值進(jìn)行枚舉。對(duì)于特定操作,例如插入和更新特定的元素,你可能需要使用針對(duì)于某種數(shù)據(jù)類型的模塊。例如,如果你想要往列表的指定位置插入指定元素,你應(yīng)當(dāng)使用List
模塊中的List.insert_at/3
函數(shù),因?yàn)閷⒅挡迦氲揭粋€(gè)范圍中是沒有意義的。
我們說Enum
模塊中的函數(shù)是多態(tài)的,因?yàn)樗鼈冞m用于多種數(shù)據(jù)類型。特別地,Enum
模塊中的函數(shù)適用于任何實(shí)現(xiàn)了Enumerable
協(xié)議的數(shù)據(jù)類型。我們將在之后的章節(jié)討論協(xié)議;現(xiàn)在我們將講到一種特殊的枚舉體,流。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: