清單
Erlang 中的列表是零個或多個 Erlang 項的序列,實現為單連結串列。列表中的每個元素可以是任何型別的術語(任何資料型別)。
1> [1,2,3].
[1,2,3]
2> [wow,1,{a,b}].
[wow,1,{a,b}]
列表的頭部是列表的第一個元素。
列表的尾部是列表的其餘部分(沒有頭部)。它也是一個清單。
你可以使用 hd/1
和 tl/1
或匹配 [H|T]
來獲取列表的頭部和尾部。
3> hd([1,2,3]).
1
4> tl([1,2,3]).
[2,3]
5> [H|T] = [1,2,3].
[1,2,3]
6> H.
1
7> T.
[2,3]
將元素新增到列表中
8> [new | [1,2,3]].
[new,1,2,3]
連線列表
9> [concat,this] ++ [to,this].
[concat,this,to,this]
字串
在 Erlang 中,字串不是單獨的資料型別:它們只是表示 ASCII 或 Unicode 程式碼點的整數列表:
> [97,98,99].
"abc"
> [97,98,99] =:= "abc".
true
> hd("ABC").
65
當 Erlang shell 列印一個列表時,它會嘗試猜測你是否真的認為它是一個字串。你可以通過呼叫 shell:strings(false)
來關閉該行為:
> [8].
"\b"
> shell:strings(false).
true
> [8].
[8]
在上面的示例中,整數 8 被解釋為退格的 ASCII 控制字元,shell 認為它是字串中的有效字元。