fn 函数

fn main() {
}//这是一个主函数,是程序的入口

fn print_number (x: i32) {
    println!("x is :{}",x);
}//这是一个带有输入变量的无返回值的函数

fn print_sum (x:i32, y :i32) {
    println!("sum is {}",x + y); // 这是一个带有两个输入值无返回的函数
}

fn print_sum (x, y) {
    println!("sum is {}",x + y); // 这是一个错误,函数的输入值类型必须明确,不能是推导类型
}


fn add_one (x:i32, y :i32) -> i32 {
    x + y // rust函数大多数情况下不需要return返回值,最后一行不含;的结果会被当做return返回
}

fn add_one (x:i32, y :i32) -> i32 {
    x + y; // 这是一个错误,返回值不可以以;结尾。编译器会认为这一行返回的类型是`()`匿名函数类型,而不是i32类型
    // 还记得么,在变量中,我们也遇到过`()`类型
}

fn foo(x:i32) -> i32{
    if x < 5 {return x};
    return x + 1;
}//rust也是可以使用return来返回值,但不推荐使用这种可能会返回不明确类型的用法。

/// 上面的`foo`函数可以改写成下面的简单方式

fn foo(x:i32) -> i32{
    if x < 5 {
         x
    } else {
        x + 1
    }
}