• Rust的语句与表达式


    Rust 语句与表达式

    Rust 中的语法分为两大类: 语句 (statement) 和表达式 (Expression)。

    语句:指的是要执行的一些操作和产生副作用的表达式。

    表达式:主要用于计算求值。

    • 语句

      • 声明语句:用于声明各种语言项,包括变量、静态变量、常量、结构体、函数等,以及通过extern和use关键字引入包和模块。

      • 表达式语句:特指以分号结尾的表达式。此类表达式求值结果将会被舍弃,并总是返回单元类型()。单元类型拥有唯一的值,就是它本身。单元类型的概念来自OCmal,他表示“没什么特殊的价值”。将单元值作为函数返回值。就表示该函数无返回值,通常,无返回值的函数不需要在函数签名中指定返回类型。

     

    //extern crate std;// 声明语句
    //use std::prelude::v1::*;//上同
    //注释掉,是因为Rust会为每个crate都自动引入标准库模块,除非使用#[no_std]属性明确指定了不需要标准库。
    fn main(){
     pub fn answer() -> (){
       let a = 40;
       let b = 2;
       assert_eq!(sum(a, b), 42);
    }
     pub fn sum(a: i32, b:i32) -> i32{
       a + b
    }
     answer();
    }

     

    从这个角度来看,可以将Rust看作一切皆表达式。由于当分号后面什么都没有时自动补单元值()的特点,可以将Rust中的语句看作计算结果均为()的特殊表达式。而对于普通的表达式来说,则会得到正常的求值结果。

    当遇到函数的时候,会将函数体的花括号识别为块表达式。块表达式是由一对花括号和一系列表达式组成的,它总是返回块中最后一个表达式的值。

    Rust编译器在解析代码的时候,如果碰到分毫,就会继续往后面执行;如果碰断语句,则执行语句;如果碰到表达式,则会对表达式求值,如果分号后面什么都没有,就会补上单元值()。

    Assert_eq!是宏语句,是Rust提供的断言,允许判断给定的两个表达式求值结果是否相同。像这种名字以叹号结尾,并且可以像函数一样被调用的语句,在Rust中叫做宏。

  • 相关阅读:
    javascript 解析json数据
    解析 对象列表的JSON数据 []、[{}] 中括号
    # 指针
    # 栈内存和堆内存
    # Linux学习笔记
    # jsp及servlet学习笔记
    # Git学习笔记
    # Excel批量处理数据
    # 数学建模算法
    # VsCode 配置C++调试运行
  • 原文地址:https://www.cnblogs.com/Davirain/p/13097120.html
Copyright © 2020-2023  润新知