Rust学习 (五) 函数

2020-09-15  本文已影响0人  Gascognya

参数与返回值类型标注

fn test(a: str, b: int) -> bool {}
这与例如python的类型标注是同款方式

表达式与语句

rust的表达式的后面不加;,语句的后面才加。

1 + 5 + 3

{
    let x = 3;
    x + 1
}

这些都是表达式

函数的返回值,代码块的值

在rust中,最后一个表达式,代表着函数或者代码块的值,例如刚才提到的。

{
    let x = 3;
    x + 1
}

x + 1是代码块中最后一个表达式,它即代表着这个代码块的值

fn main() {
    let x = plus_one(5);

    println!("The value of x is: {}", x);
}

fn plus_one(x: i32) -> i32 {
    x + 1
}

在这个函数中,x+1plus_one()的返回值。如果将其换成

fn plus_one(x: i32) -> i32 {
    5
}

也是完全没有问题的。这相当于把其他语言中最后的return所省略了。
那么如果我们将其加上;

fn plus_one(x: i32) -> i32 {
    x + 1;
}

那么就会出现报错,因为x+1;是一个语句,不是表达式。所以这个函数没有返回值,但上面标注了-> i32,所以会报错。

关于表达式和返回值这点,一定要注意。因为其和其他语言的特性不同。

上一篇下一篇

猜你喜欢

热点阅读