2016-09-26 47 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