Skip to content

函数

函数的形式如下:

// 定义函数
fn 函数名([形参: 类型, 形参: 类型...]) [-> 返回值类型] {
    函数体
}

// 调用函数
函数名(实参)
// 无参无返回值
fn function_1() {
}

// 有参无返回值
fn function_2(arg: i32) {
}

// 无参有返回值
fn function_3() -> i32 {
}

// 有参有返回值
fn function_4(arg: i32) -> i32 {
}
  • 形参的类型不能省略;
  • 函数的返回值不可以命名;
  • 函数的返回值就是函数体里最后一个表达式的值;
  • 可以使用 return 关键字显式的返回;
// 5 是一个表达式,所以这里 5 是函数 five() 的返回值
fn five() -> i32 {
    5
}

// num + 1 没有分号,也是一个表达式,在这里就是函数 add() 的返回值
fn add(num: i32) -> i32 {
    let x = 1;
    num + 1
}

fn sub(num: i32) -> i32 {
    let x = 1;
    return num - 1;
}

Tip

表达式语句 区别在于有没有分号。

Rust 中默认将最后一个表达式作为块({} 之间称为一个块)的返回值。

例如:

fn function() {
    let res = {
        let x = 1;
        x + 10
    };
    println!("{}", res);    // 打印11
}