type MyArray[T] Array[T] derive(Show, Debug)
fn op_get[T](self : MyArray[T], idx : Int) -> T {
let MyArray(arr) = self
arr[idx - 1]
}
fn init {
let myarr : MyArray[String] = MyArray(["first", "second"])
let fst = myarr[1]
let snd = myarr[2]
println("[1] = \(fst) [2] = \(snd)")
}
type定义的新类型是零开销的,运行时表示和array一样。