【问题标题】:Why do type specs in OTP repeat parameter names?为什么 OTP 中的类型规范会重复参数名称?
【发布时间】:2020-06-01 01:38:57
【问题描述】:

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

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

【问题讨论】:

    标签: erlang dialyzer typespec


    【解决方案1】:

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

    【讨论】:

    • 谢谢,卢卡斯。从透析器的角度来看,这两种样式是否等效?
    • 是的,他们应该是。不过,您在示例中打错了字,因此在问题中规格不一样。
    猜你喜欢
    • 2021-08-11
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 2012-02-12
    相关资源
    最近更新 更多