Erlang:函数参数修饰的运行时开销?

Erlang:函数参数修饰的运行时开销?,erlang,Erlang,如果我使用这种装饰,会有运行时开销吗 get_next_state(_SPid=undefined, _NextPort=undefined) -> stop; 不,没有开销。您可以检查是否制作了带有装饰和不带装饰的虚拟模块,并使用“S”标志编译它。否,没有开销。您可以检查是否创建了带装饰和不带装饰的虚拟模块,并使用“S”标志编译它。它不是装饰,而是别名。它可以让你们两个都吃蛋糕。您既可以有一个与通常匹配的模式,也可以有一个绑定到术语对应部分的变量。所以在 foo([a,b,c|

如果我使用这种装饰,会有运行时开销吗

get_next_state(_SPid=undefined, _NextPort=undefined) ->
    stop;

不,没有开销。您可以检查是否制作了带有装饰和不带装饰的虚拟模块,并使用“S”标志编译它。

否,没有开销。您可以检查是否创建了带装饰和不带装饰的虚拟模块,并使用“S”标志编译它。

它不是装饰,而是别名。它可以让你们两个都吃蛋糕。您既可以有一个与通常匹配的模式,也可以有一个绑定到术语对应部分的变量。所以在

foo([a,b,c|_]=List) -> ... .
将列表与前3个元素
a
b
c
匹配,并将
list
绑定到整个列表。它可以在模式中的任何位置使用,并且非常有用,因为它可以避免您重建术语。用它作为一种评论形式是没有问题的,但我真的不明白它的意义,它只是杂乱无章。我会把你的例子写成

%% get_next_state(SPid, NextPort) -> ... .

get_next_state(undefined, undefined) ->
    stop;

这不是装饰,而是别名。它可以让你们两个都吃蛋糕。您既可以有一个与通常匹配的模式,也可以有一个绑定到术语对应部分的变量。所以在

foo([a,b,c|_]=List) -> ... .
将列表与前3个元素
a
b
c
匹配,并将
list
绑定到整个列表。它可以在模式中的任何位置使用,并且非常有用,因为它可以避免您重建术语。用它作为一种评论形式是没有问题的,但我真的不明白它的意义,它只是杂乱无章。我会把你的例子写成

%% get_next_state(SPid, NextPort) -> ... .

get_next_state(undefined, undefined) ->
    stop;
我不知道怎么称呼这个成语,多亏了你,现在我知道了。(2) 我知道我可以不用别名来使用速记,我只是觉得这个习惯用法可以提高清晰度,而无需编写文档块。我这样做是为了简单的/私有的函数。维丁:(1)我不知道怎么称呼这个成语,多亏了你,现在我知道了。(2) 我知道我可以不用别名来使用速记,我只是觉得这个习惯用法可以提高清晰度,而无需编写文档块。我这样做是为了简单的/私有的功能。