在Erlang中,`when`关键字的含义是什么?

5

今天早上我开始尝试弄清楚Erlang中的'when'语句是用来做什么的。我知道下面的例子是错误的:

do_larger() ->
    io:format("Larger~n").

do_smaller() ->
    io:format("Smaller~n").


when_version(Size) ->
    when Size > 10 -> do_larger(),
    when Size < 10 -> do_smaller().

我决定研究它在Haskell中的实现,看看这是否有所帮助,结果我变得更加困惑了。
请问有人能够指导我使用 when 语句的教程(或者解释一下),以及如何在 Haskell 和/或 Erlang 中使用它吗?

我对 Haskell 的了解不太多,但我发现 Haskell 和 Erlang 中的代码看起来非常不同。 - Peer Stritzinger
2
我正在移除Haskell标签,因为这与Haskell没有任何关系。你可以在任何语言中编写一个名为“when”的函数。 - jrockway
еҸҜиғҪйңҖиҰҒиҖғиҷ‘е°Ҷй—®йўҳйҮҚе‘ҪеҗҚдёәвҖңErlangдёӯзҡ„whenдҝқз•ҷеӯ—вҖқжҲ–вҖңErlangдёӯзҡ„whenе…ій”®еӯ—вҖқгҖӮErlangжІЎжңүиҜӯеҸҘгҖӮ#зҲұжҢ‘еү” - Ray Toal
1个回答

18

3
在case语句和receive语句中也可以使用守卫条件。 - Zed
要么在函数中使用 when 作为守卫,要么使用 case .. of。 - SEVEN YEAR LIBERAL ARTS DEGREE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接