Elixir 拋出

2023-12-16 20:47 更新

在Elixir中,一個值可以被拋出然后被捕獲.throwcatch是預留給那些只有它們才能檢索到的值的.

這些情況很少遇到,除了當與沒有提供合適的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


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號