ejabberd - mnesia table 记录定义:“::binary()”

ejabberd - mnesia table record definition : " ::binary() "

我试图理解记录定义中存在的 ::binary() 的含义和目的,但我并没有真正理解它。如果有人能帮助我理解这一点,我将不胜感激。

示例:mod_offline.hrl

这是类型声明。 "Type Information in Record Declarations" section.

中对此进行了描述

意思是那个记录字段的值应该是二进制的。由于 Erlang 是一种弱类型语言,编译器不关心这个,但是有一个名为 Dialyzer 的静态类型检查器,它试图在代码中找到在该字段中放置二进制以外的东西的地方,或者期望该字段包含二进制文件以外的内容。

有关类型规范和 Dialyzer 的简要介绍,请参阅 the Type Specifications and Erlang chapter of Learn You Some Erlang