Erl*_*age 1 erlang functional-programming pattern-matching
对于erlang中的模式匹配字符串,哪种方法更好?
receiveString("someString") -> %doStuff;
receiveString("differentString") -> %doOtherStuff.
Run Code Online (Sandbox Code Playgroud)
要么
receiveString(A) when A == "someString" -> %doStuff;
receiveString(A) when A == "differentString" -> %doOtherStuff.
Run Code Online (Sandbox Code Playgroud)
此外,是否可以有多个when条款?
它们是等价的,但第一个对我来说更具可读性,因为它更直接.
所以我会选择第一个!
您可以使用逗号分隔多个保护表达式:
recieveString(A, B) when A == "some", B == "other" -> %doStuff;
Run Code Online (Sandbox Code Playgroud)