字面量和运算符

RustRustBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将探索 Rust 中字面量和运算符的使用。诸如整数、浮点数、字符、字符串、布尔值和单元类型等字面量可以使用它们的字面形式来表示。整数也可以用十六进制、八进制或二进制表示法来表示。下划线可用于提高数字字面量的可读性。Rust 支持浮点数的科学 E 表示法。Rust 中提供了加法、减法、逻辑运算、位运算和移位运算等运算符。

注意:如果实验未指定文件名,你可以使用任何你想要的文件名。例如,你可以使用 main.rs,并通过 rustc main.rs &&./main 进行编译和运行。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL rust(("Rust")) -.-> rust/DataTypesGroup(["Data Types"]) rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) rust(("Rust")) -.-> rust/AdvancedTopicsGroup(["Advanced Topics"]) rust/DataTypesGroup -.-> rust/boolean_type("Boolean Type") rust/DataTypesGroup -.-> rust/type_casting("Type Conversion and Casting") rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax") rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements") rust/AdvancedTopicsGroup -.-> rust/operator_overloading("Traits for Operator Overloading") subgraph Lab Skills rust/boolean_type -.-> lab-99192{{"字面量和运算符"}} rust/type_casting -.-> lab-99192{{"字面量和运算符"}} rust/function_syntax -.-> lab-99192{{"字面量和运算符"}} rust/expressions_statements -.-> lab-99192{{"字面量和运算符"}} rust/operator_overloading -.-> lab-99192{{"字面量和运算符"}} end

字面量和运算符

整数 1、浮点数 1.2、字符 'a'、字符串 "abc"、布尔值 true 和单元类型 () 都可以使用字面量来表示。

整数也可以分别使用这些前缀,以十六进制、八进制或二进制表示法来表示:0x0o0b

可以在数字字面量中插入下划线以提高可读性,例如 1_0001000 相同,0.000_0010.000001 相同。

Rust 还支持科学记数法,例如 1e67.6e-4。其关联类型为 f64

我们需要告诉编译器我们使用的字面量的类型。目前,我们将使用 u32 后缀来表示该字面量是一个无符号 32 位整数,使用 i32 后缀来表示它是一个有符号 32 位整数。

Rust 中可用的运算符及其优先级与其他类 C 语言类似。

fn main() {
    // 整数加法
    println!("1 + 2 = {}", 1u32 + 2);

    // 整数减法
    println!("1 - 2 = {}", 1i32 - 2);
    // TODO ^ 尝试将 `1i32` 改为 `1u32`,看看为什么类型很重要

    // 科学记数法
    println!("1e4 是 {}, -2.5e-3 是 {}", 1e4, -2.5e-3);

    // 短路布尔逻辑
    println!("true AND false 是 {}", true && false);
    println!("true OR false 是 {}", true || false);
    println!("NOT true 是 {}",!true);

    // 位运算
    println!("0011 AND 0101 是 {:04b}", 0b0011u32 & 0b0101);
    println!("0011 OR 0101 是 {:04b}", 0b0011u32 | 0b0101);
    println!("0011 XOR 0101 是 {:04b}", 0b0011u32 ^ 0b0101);
    println!("1 << 5 是 {}", 1u32 << 5);
    println!("0x80 >> 2 是 0x{:x}", 0x80u32 >> 2);

    // 使用下划线提高可读性!
    println!("一百万写作 {}", 1_000_000u32);
}

总结

恭喜你!你已经完成了“字面量和运算符”实验。你可以在 LabEx 中练习更多实验来提升你的技能。