跳至內容

別名

使用 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