模板
模板定义
模板和C++不同的是使用$<开头,这是为了消除泛型参数和小于运算符的歧义。
struct Tree$<T> {
}
模板参数可以有示例类型,编译时以示例类型来做类型检查。例如:
abstract struct Linkable$<T> {
var next: own*? T
var previous: *? T
}
struct LinkedList$<T: Linkable$<T>> {
}
模板实例化
泛型模板实例化时,可以传入任意满足示例类型的类型。
var tree = Tree$<Int> {}