W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在Elixir中,一個值可以被拋出然后被捕獲.throw
和catch
是預留給那些只有它們才能檢索到的值的.
這些情況很少遇到,除了當與沒有提供合適的API的庫相連接時.例如,想象一下Enum
模塊沒有提供任何API來找到一個值,而我們需要從一個數(shù)字列表中找到第一個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
?實際上 提供了合適的API,所以可以使用?Enum.find/2
?:
iex> Enum.find -50..50, &(rem(&1, 13) == 0)
-39
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: