Rust学习 (五) 函数

参数与返回值类型标注

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容