W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在Elixir中,一個(gè)值可以被拋出然后被捕獲.throw
和catch
是預(yù)留給那些只有它們才能檢索到的值的.
這些情況很少遇到,除了當(dāng)與沒(méi)有提供合適的API的庫(kù)相連接時(shí).例如,想象一下Enum
模塊沒(méi)有提供任何API來(lái)找到一個(gè)值,而我們需要從一個(gè)數(shù)字列表中找到第一個(gè)13的倍數(shù):
iex> try do
...> Enum.each -50..50, fn(x) ->
...> if rem(x, 13) == 0, do: throw(x)
...> end
...> "Got nothing"
...> catch
...> x -> "Got #{x}"
...> end
"Got -39"
由于?Enum
?實(shí)際上 提供了合適的API,所以可以使用?Enum.find/2
?:
iex> Enum.find -50..50, &(rem(&1, 13) == 0)
-39
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)系方式:
更多建議: