为什么 OTP 中的类型规范会重复参数名称?



在 Erlang 标准库的类型规范中,在when子句之前,规范中几乎从不有任何类型。例如,lists:member/2的规范是这样的:

-spec member(Elem, List) -> boolean() when
Elem :: T,
List :: [T],
T :: term().

而不是:

-spec member(Elem :: T, List :: [T]) -> boolean() when
T :: term().

这有什么原因吗?从透析器的角度来看,这两种风格是否等同?

这样做是因为如果这样做,从规范生成的文档看起来更好。

相关内容

  • 没有找到相关文章

最新更新