• 函数


    语法:fn <函数名> ( <参数> ) <函数体>

    fn another_function() { //Rust不在乎您在何处定义函数,只需在某个地方定义它们即可
        println!("Hello, runoob!");
    }
    
    fn main() { 
        println!("Hello, world!");
        another_function();
    }
    
    //输出:
    //Hello, world!
    //Hello, runoob!

    函数命名:函数名称的命名风格是小写字母以下划线分割

    函数参数
      Rust中定义函数如果需要具备参数必须声明参数名称和类型

    fn main() {
        another_function(5, 6);
    }
    
    fn another_function(x: i32, y: i32) {
        println!("x 的值为 : {}", x);
        println!("y 的值为 : {}", y);
    }
    
    //运行结果:
    //x 的值为 : 5
    //y 的值为 : 6

    函数体
      函数体由一系列可以以表达式结尾的语句组成

      语句是执行某些操作且没有返回值的步骤

    let a = (let b = 2);  //错误, 因为语句let b = 2是没有返回值的

      表达式有计算步骤且有返回值, 以下是表达式

    //假设标识符a,b,c都已被定义已经被定义
    a = 7
    b + 2
    c * (a + b)

    函数体表达式

      Rust中可以在一个用{}包括的块里编写一个较为复杂的表达式, 这种表达式叫函数体表达式

    fn main() {
        let x = 5;
    
        let y = {
            let x = 3;
            x + 1
        };
    
        println!("x 的值为 : {}", x);
        println!("y 的值为 : {}", y);
    }
    
    //输出:
    //x 的值为 : 5
    //y 的值为 : 4

    在{}块中可以使用函数语句,最后一个步骤是表达式,此表达式的结果值是整个表达式块所代表的值
    注意:函数体表达式里最后一个表达式是不能有分号的
          函数体表达式并不能等同于函数体,它不能使用 return 关键字

    函数嵌套

      函数中可以嵌套另一个函数

    fn main() {
        fn five() -> i32 {
            let x = 4;
            x + 1
        }
        println!("five() 的值为: {}", five());
    }

    函数返回值

      函数声明返回值类型的方式, 是在参数声明之后用"->"来声明函数返回值的类型
      在函数体中,随时都可以以return关键字结束函数运行并返回一个类型合适的值

    fn add(a: i32, b: i32) -> i32 {
        return a + b;
    }

    注意:Rust不支持自动返回值类型判断

         如果函数没有明确声明返回值的类型, 函数将被认为是"纯过程",不允许产生返回值, 即函数体内可以使用return,但return后面不能有返回值表达式
         这样做的目的是为了让公开的函数能够形成可见的公报

  • 相关阅读:
    Android ANR 知多少
    电源管理
    功耗分析
    手机功耗测试
    Battery Historian
    Android 电量优化
    Android手机功耗
    功耗 Log 抓取要求规范
    Android 手机无法进入系统解决方案
    定屏死机问题操作指南
  • 原文地址:https://www.cnblogs.com/shiliye/p/13410857.html
Copyright © 2020-2023  润新知