erlang中的[string()]和list()有什么区别?

erlang中的[string()]和list()有什么区别?,erlang,Erlang,Erlang:[string()]和list()之间有什么区别 我把它们看作是ct_telnet:cmd和ct_ssh:exec的返回类型 typelist()表示任何列表,但不指定其元素的类型。另一种编写方法是[\u]或[term()] string()是list()的一个特例:它是一个包含整数的列表,表示Unicode代码点(如果小于256,则包含拉丁文1字符;如果小于128,则包含ASCII字符)。另一种编写string()的方法是list(char())或[char()] [stri

Erlang:[string()]和list()之间有什么区别

我把它们看作是ct_telnet:cmd和ct_ssh:exec的返回类型

type
list()
表示任何列表,但不指定其元素的类型。另一种编写方法是
[\u]
[term()]

string()
list()
的一个特例:它是一个包含整数的列表,表示Unicode代码点(如果小于256,则包含拉丁文1字符;如果小于128,则包含ASCII字符)。另一种编写
string()
的方法是
list(char())
[char()]


[string()]
是字符串列表。这种类型也可以写成
list(string())
。由于它是列表的一个特例,因此将其写成
list()

也是有效的(尽管信息较少),因为在Erlang中没有“string”这样的类型,但是字符串是使用代码列表表示的。所以本质上

字符串()->[正整数()](正整数列表)

[String()]->[[Positive_Integer()]](正整数列表)


其中[]表示列表。

谢谢您的解释。当这两种类型中的任何一种被传递给下面的函数时,情况是否相同?loop|u list([H | L])@seenu9333这当然取决于函数接受的内容。@seenu9333:function
loop|u list([H | L])
接受所有
list(X)
(或
[X]
类型,其中
H
应该是
X
类型的
T
exec(SSH, Command, Timeout) -> {ok, Data} | {error, Reason}
Types:
  Data = list()
cmd(Connection, Cmd, Opts) -> {ok, Data} | {error, Reason}
Types:
  Data = [string()]