在 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().
是否有一个原因?从透析器的角度来看,这两种样式是否等效?