Rust入门-03-函数

函数

  • fn关键字声明函数

  • 函数和变量名使用下划线命名法snake case

    • 所有字母小写
    • 下划线分隔单词
      fn another_function() {
          println!("Another function.");
      }
    
  • 函数可以在main 函数之后,也可以定义在main之前(与其他语言不同)

参数

  • 声明函数时必须要声明每个参数的类型

    fn another_function(x: i32) {
       println!("The value of x is: {}", x);
    }
    
  • 当一个函数有多个参数时,使用逗号分隔

    fn print_labeled_measurement(value: i32, unit_label: char) {
        println!("The measurement is: {}{}", value, unit_label);
    }
    

语句和表达式(expression-based

语句(statement)是执行一些操作但不返回值的指令
  • 函数定义就是一个语句

  • 语句不会返回值

    • 不能把let语句赋值给另一个变量
    fn main() {
      let x = (let y = 6);  //let y = 6 不会返回值 
    }
    

​ 该程序编译会发生错误

  • 所以在rust中不可以写 x = y = 6
表达式(expression)计算并产生一个值
  • 表达式会返回值

  • 表达式的结尾没有分号

    • 加上分号就变成了语句
  • 函数调用是一个表达式

  • 宏调用是一个表达式

  • 创建新作用域的大括号也是一个表达式

    fn main() {
        let y = {            //该代码块(大括号包围没有let y = )就是一个表达式
            let x = 3;
            x + 1            //末尾没有分号
        };
    
      println!("The value of y is: {}", y);
    
    }
    

    输出结果为

    The value of y is: 4
    

带有返回值的函数

  • 使用箭头 -> 后声明返回值类型

    fn five() -> i32 {     //该函数返回值类型被指定为 i32
        5
    }                      //该函数中只有数字5本身,但在Rust中是一个完全有效的函数   
    
    fn plus_one(x: i32) -> i32 {
        x + 1              //末尾不加分号
    }
    
  • 函数的返回值等同于函数体最后一个表达式的值

    • 使用 return 关键字和指定值,可从函数中提前返回
    • 大部分函数隐式的返回最后的表达式
  • 关于main函数

fn main () {}

main函数的返回值类型是(),它是一个特殊的元组——没有元素的元组,称为unit,它表示一个函数没有任何信息需要返回。

()类型,其实类似于C/C++、Java、C#中的void类型。

posted @   ragworm  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示