如果我使用这种装饰会有运行时间开销吗?
get_next_state(_SPid=undefined, _NextPort=undefined) ->
stop;
答案 0 :(得分:3)
不,没有开销。您可以检查是否制作了带有和不带装饰的虚拟模块,并使用“S”标志进行编译。
答案 1 :(得分:1)
这不是装饰,而是别名。它允许你吃蛋糕并吃它。你可以都有一个像往常一样匹配的模式,并且有一个变量,它与术语的相应部分绑定。所以在
foo([a,b,c|_]=List) -> ... .
会将列表与前3个元素a
,b
和c
匹配,并将List
绑定到整个列表。它可以在模式中的任何位置使用,并且非常有用,因为它可以帮助您避免重建术语。使用它作为一种评论形式是没有问题的,但老实说,我没有看到它的重点,它只是凌乱不堪。我会把你的例子写成
%% get_next_state(SPid, NextPort) -> ... .
get_next_state(undefined, undefined) ->
stop;