2014-10-01 7 views
4

설명 :얼랑 '기록'내가 여기에 소스 코드를 탐험했다

-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() 
    }). 

내가에만 사용되는 '이중 콜론'알고 :

https://github.com/s1n4/leptus/blob/master/include/leptus_logger.hrl

그리고는 다음과 같이 정의 된 기록을 발견 목록 내포 및 유형에서. 기록에 대해 전혀 알지 못했습니다. 검색도 도움이되지 않았습니다. 저는 이것을 다음과 같이 해석합니다 :

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

이 내용이 정확합니까?

답변

9

네, 맞습니다. 유형 정보를 레코드 정의에 포함 할 수 있습니다. 이것은 레코드의 가장 멋진 부분 중 하나이며, 실제로는 거의 사용되지 않습니다.

당신이 찾고있는 문서의 일부를 찾을 조금 어렵지만, 문서화입니다 :

http://www.erlang.org/doc/reference_manual/typespec.html#typeinrecords

+0

완벽한 감사합니다. 문서의 해당 부분을 많이 보았습니다. – antipatreal