Соответствие строковому шаблону в предложении case - PullRequest
0 голосов
/ 05 июля 2018

Например, с помощью этого кортежа:

{:error,
 "Timeout error: {:timeout, {:gen_server, :call, [#PID<0.12345.0>"]}}"}

Возможно ли сделать что-то похожее на это?

case result do
  {:ok, result} -> result
  {:error, msg =~ "Timeout"} -> "Timeout error"
  {:error, _msg} -> "Another different error"
end

1 Ответ

0 голосов
/ 05 июля 2018

Нельзя сопоставлять подстроку с произвольным индексом в шаблонах, но в этом случае, поскольку строка начинается с Timeout, вы можете сделать это:

case result do
  {:ok, result} -> result
  {:error, "Timeout" <> _} -> "Timeout error"
  {:error, _msg} -> "Another different error"
end
...