函数
在 Toka 中,函数是一等公民。它们遵循简洁、可读的语法。
基本函数语法
fn add(x: i32, y: i32) -> i32 {
return x + y
}
fn关键字声明一个函数- 参数使用
name: Type语法进行类型标注 - 返回类型跟在
->之后 - 函数体用
{ }包裹
入口点:main
每个 Toka 可执行文件都需要一个返回退出码的 main 函数:
import std/io::println
fn main() -> i32 {
println("Hello, Toka!")
return 0
}
返回 0 表示成功,非零表示错误。
多个参数
函数可以接受多个不同类型的参数:
fn greet(name: str, age: i32, formal: bool) -> str {
if formal {
return "Good day"
}
return "Hey"
}
可变参数
参数默认不可变。在声明时使用 # 标记来表示可变参数。在函数体内部,访问参数时不需要 #:
fn increment(x#: i32) {
x = x + 1 // 函数体内部不需要 #
}
无返回值的函数
如果函数不返回任何值,省略 ->:
import std/io::println
fn log_message(msg: str) {
println("{}", msg)
}
方法语法
函数可以通过 impl 块附加到类型上:
pub shape Number(val: i32)
impl Number {
pub fn double(self) -> i32 {
return self.val * 2
}
}
fn main() -> i32 {
auto result = Number(val = 5).double() // result = 10
return 0
}