別名¶
使用 alias
可以為型別指定不同的名稱
alias PInt32 = Pointer(Int32)
ptr = PInt32.malloc(1) # : Pointer(Int32)
每次使用別名時,編譯器都會將其替換為它所指的型別。
別名可用於避免寫入長型別名稱,也可以用來談論遞迴型別
alias RecArray = Array(Int32) | Array(RecArray)
ary = [] of RecArray
ary.push [1, 2, 3]
ary.push ary
ary # => [[1, 2, 3], [...]]
遞迴型別的真實範例是 json
module Json
alias Type = Nil |
Bool |
Int64 |
Float64 |
String |
Array(Type) |
Hash(String, Type)
end