ejabberd - определение записи таблицы мнезии: :: binary ()

Я пытаюсь понять значение и цель :: binary (), которые существуют в определении записи, но на самом деле не понимаю этого. Благодарю, если кто-нибудь может помочь мне понять это.

Пример: mod_offline.hrl.


person shkhssn    schedule 14.09.2016    source источник
comment
Вы имеете в виду спецификации типов (erlang.org/doc/reference_manual/typespec.html)?   -  person Dogbert    schedule 14.09.2016


Ответы (1)


Это объявление типа. Это описано в разделе «Информация о типе в объявлениях записей».

Смысл в том, что значение этого поля записи должно быть двоичным. Поскольку Erlang - язык со слабой типизацией, компилятор не заботится об этом, но есть средство проверки статического типа под названием Dialyzer, который пытается найти места в коде, которые помещают в это поле что-то, кроме двоичного, или ожидает, что в поле будет храниться что-то другое, кроме двоичного.

Для мягкого введения в спецификации типов и Dialyzer см. спецификацию типов и главу Erlang книги Learn You Some Erlang.

person legoscia    schedule 14.09.2016