W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
:into
選項(xiàng)給推導(dǎo)式.例如,位串發(fā)生器可以和:into
選項(xiàng)配合使用,來簡(jiǎn)單地消除字符串中的空格:
iex> for <<c <- " hello world ">>, c != ?\s, into: "", do: <<c>>
"helloworld"
集合,映射等其它的詞典結(jié)構(gòu)也可以被傳遞給:into
選項(xiàng).通常,:into
接受可以實(shí)現(xiàn)Collectable
協(xié)議的任何結(jié)構(gòu).
一個(gè)普遍的:into
使用場(chǎng)景是不接觸鍵,就能改變映射中的值:
iex> for {key, val} <- %{"a" => 1, "b" => 2}, into: %{}, do: {key, val * val}
%{"a" => 1, "b" => 4}
讓我們看一個(gè)使用流的例子.因?yàn)?code>IO模塊提供了流(滿足Enumerable
和Collectable
),我們可以用推導(dǎo)式來實(shí)現(xiàn)一個(gè)返回輸入內(nèi)容的大寫版本的回聲終端:
iex> stream = IO.stream(:stdio, :line)
iex> for line <- stream, into: stream do
...> String.upcase(line) <> "\n"
...> end
現(xiàn)在輸入任意字符到終端中,你會(huì)看到相應(yīng)的大寫值打印出來.不幸的是,這個(gè)例子會(huì)使你的IEx殼陷入推導(dǎo)式中,所以你需要敲擊兩次Ctrl+C
來退出它.:)
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)系方式:
更多建議: