2016-09-26 2 views
1

Как закодировать несколько операторов в одном шаблоне получения соответствия Elixir?Elixir получает сообщение: как я могу запускать несколько операторов?

Это работает:

def pong sender do 
    receive do 
    x -> IO.puts("hello"); IO.puts("there"); send(sender, x) 
    end 
end 

Но что, если я не могу поставить их все на той же линии? Можно ли их заключить в скобки, используя предложение do end? Потому что это не работает:

def pong sender do 
    receive do 
    x -> do 
      IO.puts("hello") 
      IO.puts("there") 
      send(sender, x) 
     end 
    end 
end 
+4

Вы можете удалить '' do' и end' из вашего второго примера и он будет работать. Как и в случае с http://elixir-lang.org/getting-started/case-cond-and-if.html#case – Gazler

ответ

3

Я думаю, вы можете просто опустить do/end:

def pong sender do 
    receive do 
    x -> 
     IO.puts("hello") 
     IO.puts("there") 
     send(sender, x) 
    end 
end 
Смежные вопросы