[rust]函数

59 阅读1分钟
fn main() {
    func1();
    func2(1, 2);
    let sum = func3(2, 3);
    println!("sum={}", sum)
}

fn func1() {
    println!("无参无返回值");
}

fn func2(a: i32, b: i32) {
    println!("有参无返回值 = {},{}", a, b);
}

fn func3(a: i32, b: i32) -> i32 {
    println!("有参有返回值");
    return a + b;
}

// ------------- 返回值的简约写法 ------------------
fn func4(a: i32, b: i32) -> i32 {
    println!("有参有返回值-简约写法2.0");
    let res = a + b;
    return res;
}

fn func5(a: i32, b: i32) -> i32 {
    println!("有参有返回值-简约写法3.0");
    let res = a + b;
    res
}

fn func6(a: i32, b: i32) -> i32 {
    println!("有参有返回值-简约写法4.0");
    a + b
}

小结:

  1. 不带分号是一个表达式,表达式可以计算,并有返回值
  2. 带分号是一个语句,语句不能计算,没有返回值

fn main() {
    let x = 1; // 语句
    let y = {
        let x = 1; // 语句
        x + 1 // 表达式,返回了 x+1 的值
    }; // 语句

    println!("x = {}",x);
    println!("y = {}",y);
}