Erlang中模式匹配字符串的正确方法

时间:2015-03-25 13:35:05

标签: functional-programming erlang pattern-matching

对于erlang中的模式匹配字符串,哪种方法更好?

receiveString("someString") -> %doStuff;
receiveString("differentString") -> %doOtherStuff.

receiveString(A) when A == "someString" -> %doStuff;
receiveString(A) when A == "differentString" -> %doOtherStuff.

此外,是否可以有多个when条款?

1 个答案:

答案 0 :(得分:5)

它们是等价的,但第一个对我来说更具可读性,因为它更直接。

所以我会选择第一个!


你可以用逗号分隔几个保护表达式:

recieveString(A, B) when A == "some", B == "other" -> %doStuff;