Пользовательское поведение позволяет вам указать контракт.Этот контракт задается списком имен функций / арностей, которые должны существовать в модуле, реализующем это поведение.По сути, просто удобно убедиться, что вы объявили все функции.
В качестве примера вы можете определить модуль с поведением gen_server
, а затем опустить функцию handle_info/2
из него.Затем проверка поведения выдаст ошибку, потому что вам не хватает части контракта.
Вот и все!Для их реализации в модуле, определяющем поведение, определена специальная функция behavior_info/1
, которая сообщает системе Erlang о поведении.
inets
определяет поведение inets_service
, поскольку оно затем служит контрактом длясоединения с системой inets
.