泛型与接口
RGC 支持泛型函数、泛型类、泛型枚举,并通过**接口(interface)**提供静态分派与边界约束。
泛型函数
def first[T](items: @List[T]) -> T {
return items[0]
}
泛型类
class Pair[A, B] {
first: A
second: B
}
泛型枚举
enum Option[T] {
Some(value: T)
None
}
接口(interface)
接口定义行为契约,类型通过 implement 实现:
interface Show {
def to_string(self) -> str
}
class Point {
x: int
y: int
}
implement Show for Point {
def to_string(self) -> str {
return "({}, {})".format(self.x, self.y)
}
}
边界约束
泛型参数可以用接口约束其能力:
def print_all[T: Show](items: @List[T]) {
for item in items {
print(item.to_string())
}
}
单态化
泛型通过单态化编译:每个具体类型生成专用代码,无虚表开销、无装箱成本,性能与手写专用实现一致。