泛型函数

通用函数和过程提供了一个简单的定义。

// generic function
fun add3 (x,y,x) => x + y + z;

// used with different argument types
println$ add3 (1,2,3); // 6
println$ add3 (1.0,2.0,3.0); // 6.0
println$ add3 ('Hello',' ','World'); // Hello World

对于泛型函数的每次使用,Felix都会生成一个副本并添加参数类型。所以上面的三个调用实际上调用了这些自动生成的函数:

fun add3 (x:int, y:int, z:int) => x + y + z;
fun add3 (x:double, y:double, z:double) => x + y + z;
fun add3 (x:string, y:string, z:string) => x + y + z;

请注意,重写的函数与泛型函数在同一范围内生成,因此泛型函数中使用的任何名称都引用泛型函数原始作用域中的名称。