Rust 基础入门 —— 语句与表达式

简介: 语句与表达式这一节,我们接触的是rust中的有一个基本类型 我将其称之为 —— 逻辑结构,这个是我自己命名的,但我觉得很贴切。

语句与表达式

这一节,我们接触的是rust中的有一个基本类型 我将其称之为 —— 逻辑结构,这个是我自己命名的,但我觉得很贴切。

我们只需要记住一个有;结尾的逻辑结构就是语句。 没有的就是表达式。

而我所谓的逻辑结构就是 他包含了变量,操作,可能还要获取结果。的几部分就是逻辑结构。


举例:


fn main() {
    let a = 8;
    let b: Vec<f64> = Vec::new();
    let (a, c) = ("hi", false);
}


以上都是语句, 即 他们都完成了一个具体的操作, 并且没有返回值


而以下内容 则是 表达式:


fn main() {
    let y = {
        let x = 3; //语句
        x + 1 // 表达式
    }; // 语句
    println!("The value of y is: {}", y);
    let z = (let r = 0); // 外层 是语句, 但是右值 是 赋值语句, 因此外层找不到返回值,会报错。
}


总结一下


表达式是要有返回值的,没有分号的。

表达式添加了分号就变成了语句

let 作为赋值语句,可以直接理解为语句。

rust 中是可以通过表达式定义 let声明的左值的,因为实质上这是一个变量绑定,你可以理解为指向函数的指针,但是这个地方会在编译时,将对应函数内容计算出来给左值,(有点像编译时lambda是吧,虽然lambda是运行时的还可以捕获局部参数。但这种写作风格雀氏形似)。

表达式如果没有显示的返回内容如 :let z = {let r = 1;r+=1;r} 或者let z = {let r = 1;r+=1;return r}而是 let z = {let r = 1}那么这是z 实际 赋值单元类型。

即:表达式如果不返回任何值,会隐式地返回一个 ()。

来段更难的代码:

fn main() {
    assert_eq!(ret_unit_type(), ())
}
fn ret_unit_type() {
    let x = 1;
    // if 语句块也是一个表达式,因此可以用于赋值,也可以直接返回
    // 类似三元运算符,在Rust里我们可以这样写
    let y = if x % 2 == 1 {
        "odd"
    } else {
        "even"
    };
    // 或者写成一行
    let z = if x % 2 == 1 { "odd" } else { "even" };
}
目录
相关文章
|
13天前
|
Web App开发 Rust 安全
一名C++程序员的Rust入门初体验
作者最近尝试写了一些Rust代码,本文主要讲述了对Rust的看法和Rust与C++的一些区别。
|
13天前
|
Rust 算法 开发者
【Rust 控制流入门指南】 Introduction to Control Flow in Rust
【Rust 控制流入门指南】 Introduction to Control Flow in Rust
27 0
|
6月前
|
Rust 安全 编译器
Rust 基础入门 —— 2.3.所有权和借用 (二)
同一时刻,你只能拥有要么一个可变引用, 要么任意多个不可变引用 引用必须总是有效的 贴一个体验不错的学习链接恰饭:学习链接
47 0
|
6月前
|
Rust 安全 算法
Rust 基础入门 ——所有权 引言 :垃圾自动回收机制的缺陷。
能有这些问题的部分发生场景: 游戏开发:在游戏开发中,需要保持稳定的帧率和低延迟,以提供流畅的游戏体验。如果GC频繁触发或停顿时间过长,会导致游戏卡顿或掉帧,影响游戏的流畅度和响应性能。
56 0
|
6月前
|
存储 Rust 安全
Rust 基础入门 —— 2.3.所有权和借用
写在前面的序言 因为我们这里实际讲述的内容是关于 内存安全的,所以我们最好先复习一下内存的知识。
28 0
|
6月前
|
Rust Go
Rust 基础入门 —— 字符、布尔、单元 类型
布尔类型(bool) 说明一点,bool类型的应用场景 主要就是用在流程控制中,
58 2
|
6月前
|
Rust 安全 编译器
Rust 基础入门 —— 函数
当用 ! 作函数返回类型的时候,表示该函数永不返回( diverge function ),特别的,这种语法往往用做会导致程序崩溃的函数:
26 0
|
13天前
|
Rust 安全 程序员
|
7天前
|
Rust 安全 Java
Rust 和 Go:如何选择最适合你的编程语言
Rust 和 Go 都是优秀的选择 首先,重要的是要说 Rust 和 Go 都是非常优秀的编程语言。它们都是现代的、强大的,被广泛采用,且提供了卓越的性能。
19 1
|
13天前
|
Rust 安全 程序员
Rust vs Go:解析两者的独特特性和适用场景
在讨论 Rust 与 Go 两种编程语言哪种更优秀时,我们将探讨它们在性能、简易性、安全性、功能、规模和并发处理等方面的比较。同时,我们看看它们有什么共同点和根本的差异。现在就来看看这个友好而公平的对比。