【问题标题】:Does type [string()] cover empty list?类型 [string()] 是否覆盖空列表?
【发布时间】:2016-11-22 01:28:30
【问题描述】:

当定义一个类型是字符串列表但也可以是一个空列表时,我是否必须像这样定义这两种情况:

-type my_type() :: [string()] | [].

或者这样就够了:

-type my_type() :: [string()].

【问题讨论】:

    标签: erlang dialyzer


    【解决方案1】:

    是的,[string()] 包含空列表,因此如果您想包含空列表,请使用 -type my_type() :: [string()].

    因为列表是常用的,所以它们具有速记类型符号。 list(T)nonempty_list(T) 类型分别具有简写 [T][T,...]。这两个简写的唯一区别是[T] 可以是一个空列表,但[T,...] 不能。

    Source

    【讨论】:

      猜你喜欢
      • 2012-07-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-12
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-04
      相关资源
      最近更新 更多