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

Ser*_*nik 2 erlang dialyzer

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

-type my_type() :: [string()] | [].
Run Code Online (Sandbox Code Playgroud)

或者这就够了:

-type my_type() :: [string()].
Run Code Online (Sandbox Code Playgroud)

Dog*_*ert 6

是的,[string()]包括空列表,因此-type my_type() :: [string()].如果要包含空列表,则使用正常.

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

资源