Skip to content

Instantly share code, notes, and snippets.

@FScoward
Created December 11, 2017 05:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FScoward/222e847b9bcd0f123bb74dba4852b489 to your computer and use it in GitHub Desktop.
Save FScoward/222e847b9bcd0f123bb74dba4852b489 to your computer and use it in GitHub Desktop.
Elixirにおけるwithの挙動
defmodule Etc do
def hello do
IO.puts "Hello"
end
def return_ok do
{:ok, "ok"}
end
def return_err do
{:error, :eonet}
end
def return_err2 do
{:error, "error occured."}
end
def do_process do
with {:ok, content} <- return_ok(),
{:ok, content2} <- return_err(),
{:ok, content3} <- return_ok(),
{:ok, content4} <- return_err2()
do
IO.inspect content <> content2
else
{:error, :eonet} -> IO.inspect(:error)
{:error, content} -> IO.inspect(content)
end
end
end
Etc.hello
Etc.return_ok
Etc.return_err
Etc.do_process
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment