1

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

是否有一个原因?从透析器的角度来看,这两种样式是否等效?

4

1 回答 1

3

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

于 2020-05-31T14:46:59.877 回答