גנריים (Generics)
הגנריים של Wave הם תכונה לכתיבת פונקציות בטוחות-סוג ללא שכפול קוד.
חוקים עיקריים:
- יש לציין פרמטרי סוג בעת כתיבה.
- אין אפשרות להסיק סוגים באופן אוטומטי.
1. הכרזת פונקציה גנרית
fun identity<T>(x: T) -> T {
return x;
}
קריאה:
fun main() {
var a: i32 = identity<i32>(10);
var b: f64 = identity<f64>(3.14);
}
2. פרמטרי סוג מרובים
struct Pair<A, B> {
first: A;
second: B;
}
fun pair<A, B>(a: A, b: B) -> Pair<A, B> {
return Pair<A, B> {
first: a;
second: b;
};
}
fun main() {
var p: Pair<i32, f64> = pair<i32, f64>(1, 2.5);
}
