当定义一个类型时,它将是一个字符串列表,但也可以是一个空列表,我是否必须像这样定义这两种情况:
-type my_type() :: [string()] | [].
-type my_type() :: [string()].
是的,[string()]
包含空列表,所以如果你想包含空列表,使用-type my_type() :: [string()].
是可以的。
源因为列表是常用的,所以它们有简短的类型符号。
list(T)
和nonempty_list(T)
类型的简写分别为[T]
和[T,...]
。两个简写之间的唯一区别是[T]
可以是空列表,而[T,...]
不能。