Erlang: время выполнения украшения параметров функции? - PullRequest
0 голосов
/ 01 декабря 2009

Есть ли время выполнения, если я использую этот вид украшения?

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

Ответы [ 2 ]

3 голосов
/ 01 декабря 2009

Нет, накладных расходов нет. Вы можете проверить, создаете ли вы фиктивный модуль с декорацией и без нее, и скомпилировать ее, используя флаг 'S'.

1 голос
/ 02 декабря 2009

Это не украшение, а псевдоним. Это позволяет вам иметь свой торт и есть его. Вы можете использовать шаблон, который соответствует обычному, и иметь переменную, которая связана с соответствующей частью термина. Так что в

foo([a,b,c|_]=List) -> ... .

сопоставит список с первыми 3 элементами a, b и c и свяжет List со всем списком. Он может быть использован в любом месте шаблона и полезен, поскольку он может спасти вас от перестройки термина. Использование его в качестве формы комментария не проблема, но я, честно говоря, не вижу в этом смысла, он просто загромождает голову. Я бы написал твой пример как

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

get_next_state(undefined, undefined) ->
    stop;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...