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

see*_*333 3 erlang

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()
Run Code Online (Sandbox Code Playgroud)

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

cmd(Connection, Cmd, Opts) -> {ok, Data} | {error, Reason}
Types:
  Data = [string()]
Run Code Online (Sandbox Code Playgroud)

leg*_*cia 9

该类型list()代表任何列表,而不指定其元素的类型.写它的另一种方法是[_][term()].

A string()是一种特殊情况list():它是一个包含表示Unicode代码点的整数的列表(如果小于256,则为Latin-1字符,如果小于128,则为ASCII字符).另一种写作方式string()list(char())[char()].

A [string()]是字符串列表.这种类型也可以写成list(string()).由于它是列表的特殊情况,因此将其编写为有效(尽管信息量较少)list().

  • @ seenu9333:函数`loop_list([H | L])`接受所有`list(X)`(或`[X]`types),其中`H`应该是类型`X`和`T`类型`清单(X)`. (3认同)