ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Rust Koans布尔与整数篇:5个练习吃透Rust基础类型、比较运算与可变性

Rust Koans布尔与整数篇:5个练习吃透Rust基础类型、比较运算与可变性 Rust Koans布尔与整数篇5个练习吃透Rust基础类型、比较运算与可变性【免费下载链接】rust-koansKoans for the Rust programming language项目地址: https://gitcode.com/gh_mirrors/ru/rust-koansRust Koans 是一套以填空式测试驱动的 Rust 语言入门练习集它把布尔、整数等基础类型拆解成一个个独立的小测试。你只需要把代码里的__替换成正确答案运行测试通过后就能在红绿重构的节奏中一步步吃透 Rust 基础类型、比较运算与可变性。本篇聚焦布尔与整数篇用 5 个精选练习带你快速上手。Rust Koans 是什么用填空练习开启 Rust 学习之旅Rust Koans 借鉴了 Ruby Koans 的教学思路不靠枯燥讲解而是让代码本身当老师。每个练习都是一个带空白的测试用例例如src/koans/the_truth.rs里第一关只有一行assert!(__)填上true即可通关。运行方式非常简单先克隆仓库git clone https://gitcode.com/gh_mirrors/ru/rust-koans然后进入目录执行cargo run。程序会通过src/main.rs自动读取src/koans.txt中的练习顺序把下一个待完成的练习追加到测试路径里跑不过就提示你继续参悟。Rust 基础类型入门布尔与整数家族一览在进入练习前先认识两位主角布尔类型bool只有true和false两个值常由比较运算产生整数类型分为无符号u8、u16、u32、u64和有符号i8、i16、i32、i64两大类类型有无符号取值范围u8无符号0 ~ 255i8有符号-128 ~ 127u16无符号0 ~ 65535i16有符号-32768 ~ 32767记住这张表接下来的练习全部围绕它展开。练习一布尔比较运算——与!的真相布尔篇第一关在src/koans/boolean.rs中核心是掌握比较运算符#[test] fn truth() { assert!(true true); // 相等比较返回 true } #[test] fn falsehood() { assert!(false ! true); // 不等比较返回 true }要点总结判断两个值是否相等相等返回true!判断两个值是否不等不等返回true比较运算的结果本身就是bool类型可直接放进assert!里练习二比较运算延伸——字符串与整数的相等判断比较运算不只作用于布尔值字符串和整数同样适用。练习二依然在src/koans/boolean.rs#[test] fn string_equality() { assert!(Stuff Stuff); } #[test] fn int_equality() { let num: i8 5; assert!(num 5); }这里有两个值得注意的细节字符串用比较的是内容是否相同整数比较要求两侧类型一致i8类型的变量要和i8字面量比类型不匹配会直接编译报错练习三无符号整数——从 0 开始的最小值边界进入src/koans/integer.rs先看无符号整数。无符号意味着不能为负数最小值恒为 0#[test] fn unsigned_ints() { assert!(u8::min_value() 0); } #[test] fn sub_unsigned_int() { let mut num: u8 10; num - 10; assert!(num u8::min_value()); // 减到 0 就到极限了 } 关键认知u8的取值下限是 0想再往下减就会触发溢出overflow这在 Rust 中是不被允许的。这个练习让你直观感受无符号的边界约束。练习四有符号整数——负数范围与最大值相加有符号整数可以表示负数且负方向的范围比正方向多 1 个刻度i8为 -128 ~ 127#[test] fn signed_ints() { assert!(i8::min_value() 0); } #[test] fn sub_signed_int() { let mut num: i8 0; let negative: i8 -128; num negative; assert!(num i8::min_value()); }再看一个双向逼近最大值的练习#[test] fn add_numbers() { let mut sig: i8 0; let mut unsig: u8 0; sig 127; unsig 255; assert!(sig i8::max_value() unsig u8::max_value()); } 记忆口诀i开头的有符号整数能装负数u开头的无符号整数只能从 0 开始往上加。练习五可变性——mut关键字的正确姿势Rust 中变量默认不可变想修改值必须显式声明mut。这是新手最容易踩的坑练习五专门针对这一点#[test] fn mutating_ints() { let mut num: i8 1; // 少了 mut 就无法 num 2 num 2; assert!(num 3); } #[test] fn referencing_values() { let num: i8 1; let mut mut_num: i8; // 先声明一个可变变量 mut_num num; // 再赋值并修改 mut_num 1; assert!(num ! mut_num); // num 不可变mut_num 可变 }️ 动手验证把let mut num改成let num编译器会立刻报错 cannot assign twice to immutable variable。这正是 Rust 设计哲学——用编译器约束可变性让代码行为更可预测。红绿重构像高手一样完成每个练习Rust Koans 完整复刻了 TDD 的红绿重构循环红Red运行cargo run看到测试失败此时你知道该填哪里绿Green填入正确答案测试通过系统提示下一个练习重构Refactor回头想想这个练习教了什么尝试优化表达每通关一个文件后续练习才会被追加进来。这种循序渐进的设计让src/koans/boolean.rs和src/koans/integer.rs成为新手最友好的两站。小结与下一步继续你的 Rust Koans 完整修行路径通过这 5 个练习你已经掌握了✅ 布尔值与、!比较运算✅ 无符号整数与有符号整数的取值范围差异✅ 整数加减运算与最大值/最小值边界✅ 可变性mut关键字的声明与使用场景src/koans.txt显示布尔与整数之后还有数组、向量、字符串、HashMap、结构体、所有权和 trait 等着你。从the_truth到traits每一关都是上一关的延伸。继续cargo run当你看到 There will be no more tasks 时恭喜你Rust 修行之路已经走完大半【免费下载链接】rust-koansKoans for the Rust programming language项目地址: https://gitcode.com/gh_mirrors/ru/rust-koans创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表