类型[string()]是否覆盖空列表?

时间:2016-09-16 10:20:53

标签: erlang dialyzer

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

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

或者这就够了:

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

1 个答案:

答案 0 :(得分:6)

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

  

由于列表是常用的,因此它们具有速记类型符号。类型list(T)nonempty_list(T)分别具有缩写[T][T,...]。两个缩写词之间的唯一区别是[T]可以是空列表,但[T,...]不能。

Source