函数与重载
函数以 fn 开头,参数采用 name: Type,返回类型写在 -> 后面。省略返回类型的场景仍受当前类型系统限制;入门时建议显式写出。
kelyra
fn add(a: i32, b: i32) -> i32 {
return a + b;
}程序入口
@main 可标记任意名称的无参数函数,但其返回类型必须是 i32。一个程序恰好需要一个入口。
同名函数
普通函数和方法可以同名,只要参数类型序列不同。返回类型不用于区分重载。调用时优先选择参数类型完全匹配的候选;如果多个候选仍无法区分,编译器会报歧义。
kelyra
fn scale(value: i32) -> i32 { return value * 2; }
fn scale(value: f32) -> f32 { return value * 2.0; }编译器不会在重载选择时隐式提升数值类型。构造函数重载和同名泛型函数模板仍未支持。
函数值
函数类型写作 fn(i32) -> i32。无捕获的顶层函数可作为回调传给兼容的参数,也可用于 C 函数指针互操作。