作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
样式 1:
a(X) when X>1 ->
...omitted;
a(X) when X ->
...omitted.
a(X) ->
case X>1 of
true-> ...ommited;
false-> ...ommited
end.
a(X) when X>1 ->
...omitted;
a(X) ->
...omitted.
a(X) ->
case X>1 of
true-> ...ommited;
false-> ...ommited
end.
最佳答案
Learn You Some Erlang's section on function syntax声明函数子句和 case 语句基本相同,除了一个区别:子句中的模式匹配可以处理多个模式,而 case 语句只能处理一个语句。
除此之外,我相信这是一个品味问题。当 case 确实不同时,我倾向于使用不同的 function 子句(例如:完整的函数将表现不同),并且当我希望代码发散并随后再次合并时,我使用 case 语句,例如根据表达式计算变量的值。
编辑
正如 RobertAloi 在下面的评论中指出的那样,使用 case .. of
时您并没有真正受到限制。 .此外,正如 rvirding 所写,编译器在将不同的表达式包装在一个元组中时会进行一些优化,以允许对其进行匹配。
关于erlang - 哪个更可取? guard 还是案件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12363882/
我们构建了一个基于 Netty/NIO 的服务,我正在考虑将该服务部署到我们的生产环境中。我们部署服务的标准方式是作为 WAR,部署在 Tomcat 中。 当我在这里提出相同的方法时,我得到了“不应该
我是一名优秀的程序员,十分优秀!