美文网首页
Rust学习 (五) 函数

Rust学习 (五) 函数

作者: Gascognya | 来源:发表于2020-09-15 08:18 被阅读0次

    参数与返回值类型标注

    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,所以会报错。

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

    相关文章

      网友评论

          本文标题:Rust学习 (五) 函数

          本文链接:https://www.haomeiwen.com/subject/efzvektx.html