Erlang 程式設計/附加型別
外觀
我們已經看到了以下型別:元組、列表、整數、浮點數、函式和 pid。我們可以透過測試來檢查物件的型別。
1> is_pid( self() ). true
如果你想在型別之間轉換,列表是 Erlang 中型別的通用語言,所以首先把它變成一個列表,然後再轉換成其他型別。請記住,型別轉換不是一個並行安全的操作。
一些額外的型別是:埠和引用。
埠是與外部世界的連線。通常埠生成和/或消費位流。二進位制資料在 Erlang 中被認為是無型別的。 (見 BitSyntax)。
引用是一個全域性唯一的符號,用
19> make_ref(). #Ref<0.0.0.88>
引用只有在所有連線的程序都需要一個唯一的標籤時才有用。不要將引用術語與 C 中的引用混淆,後者指向資料。Erlang 引用只是一個唯一的標籤。
Erlang 沒有布林型別。它有原子(true 和 false),這些原子由某些函式生成,並由某些函式(如守衛和列表推導)期望。函式:is_constant() 生成 true 或 false。
我們可以測試一個物件是否是一個常量。
1> is_constant(a) true 2> is_atom(a). true
因為原子用常數表示,所以原子是常量。
is_constant(A). ** 1: variable 'A' is unbound ** 5> A=1. 1 6> is_constant(A). true
理論上,因為布林型別不是內建的,所以它應該更容易讓 Erlang 用其他型別的邏輯計算,例如 {true, false, null}。