模式匹配是首选还是惯用 Erlang 中的 case 语句?
Posted
技术标签:
【中文标题】模式匹配是首选还是惯用 Erlang 中的 case 语句?【英文标题】:Is pattern matching preferred or a case statement in idiomatic Erlang? 【发布时间】:2018-09-04 02:18:03 【问题描述】:这段代码中哪一个是 Erlang 的首选方式,为什么?
sumOfMultiples(Multiples, 1) ->
0;
sumOfMultiples(Multiples, N) ->
cal_multiples(Multiples, lists:seq(1, N-1), 0).
或
sumOfMultiples(Multiples, N) ->
case N of
1 -> 0;
cal_multiples(Multiples, lists:seq(1, N-1), 0)
end
【问题讨论】:
【参考方案1】:标题不太正确,因为case
是模式匹配(和一个表达式,而不是一个语句)。
多子句定义可能会稍有偏好,因为当您想要匹配多个参数时使用它会更好,但两者都是完全惯用的。
【讨论】:
以上是关于模式匹配是首选还是惯用 Erlang 中的 case 语句?的主要内容,如果未能解决你的问题,请参考以下文章