在定义typespec时,binary,String.t,char_list,[char]等之间有什么不同?
@spec method(binary) :: binary
和
@spec method(String.t) :: String.t
他们是等同的吗? Doc说:
答案 0 :(得分:4)
String.t
与binary
相同,请参阅其定义here。
char_list
不仅仅是一个简单的字符列表。它在Erlang的unicode
模块中定义为:
maybe_improper_list(char() | unicode_binary() | charlist(),
unicode_binary() | [])
因此它包括正确和不正确的列表,列表可以包含字符,二进制文件或字符列表或空列表。