在Erlang中,[string()]和list()有什么区别?

cedebl8k  于 2022-12-08  发布在  Erlang
关注(0)|答案(2)|浏览(187)

Erlang:[string()]和list()有什么区别??
我将它们视为ct_telnet:cmd和ct_ssh:exec的返回类型。
http://erlang.org/doc/man/ct_ssh.html

exec(SSH, Command, Timeout) -> {ok, Data} | {error, Reason}
Types:
  Data = list()

http://erlang.org/doc/man/ct_telnet.html

cmd(Connection, Cmd, Opts) -> {ok, Data} | {error, Reason}
Types:
  Data = [string()]
r8xiu3jd

r8xiu3jd1#

类型list()代表任何列表,不指定其元素的类型。另一种写法是[_][term()]
string()list()的特例:它是一个包含代表Unicode码位的整数的列表(如果少于256个,则为Latin-1字符;如果少于128个,则为ASCII字符)。string()的另一种写法是list(char())[char()]
一个[string()]是一个字符串列表。这个类型也可以写成list(string())。因为它是一个列表的特例,所以写成list()也是有效的(尽管信息量不大)。

7rfyedvj

7rfyedvj2#

形式上来说,Erlang中没有“string”这样的类型,但是字符串是用一系列代码来表示的。
String()-〉[Positive_Integer()](正整数列表)
[String()] -〉Positive_Integer()(正整数列表的列表)
其中[]表示列表。

相关问题