Erlang 二郎';记录';解释

Erlang 二郎';记录';解释,erlang,records,double-quotes,Erlang,Records,Double Quotes,我在这里探索源代码: 注意到一个记录定义如下: -record(log_data, { request_time = erlang:localtime() :: calendar:datetime(), response_time :: undefined | calendar:datetime(), request_line = "" :: string(), ip :: inet:ip_address(), version

我在这里探索源代码:

注意到一个记录定义如下:

-record(log_data,
    {
      request_time = erlang:localtime() :: calendar:datetime(),
      response_time :: undefined | calendar:datetime(),
      request_line = "" :: string(),
      ip :: inet:ip_address(),
      version = 'HTTP/1.1' :: atom(),
      method = <<"GET">> :: binary(),
      uri = <<"/">> :: binary(),
      headers = [] :: [{binary(), iodata()}],
      status = 200 :: non_neg_integer(),
      content_length = 0 :: non_neg_integer()
    }).

这是正确的吗?

是的,你是正确的。您可以在记录定义中包含类型信息。事实上,这是唱片中最酷的一个方面,也是我看到很少用到的一个方面

您要查找的文档部分有点难找到,但有文档记录:

'request_time' is 'erlang:local time()' of type 'calendar:date time()'
response_time is of type undefined or calendar:datetime
and so on ...