尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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),仅供参考
RELATED

相关推荐

S-mall-ssm 小小商城系统全解析:一个仿天猫的SSM电商项目凭什么值得学习?

S-mall-ssm 小小商城系统全解析:一个仿天猫的SSM电商项目凭什么值得学习?

S-mall-ssm 小小商城系统全解析:一个仿天猫的SSM电商项目凭什么值得学习? 【免费下载链接】S-mall-ssm 小小商城系统,JavaWEB项目,基于SSM,仿天猫页面,功能齐全,实现了自动处理关联查询的通用Ma…

📅 2026/10/12 13:47:34
揭秘底层:Convex + Better Auth 数据库 Adapter 实现原理深度解析

揭秘底层:Convex + Better Auth 数据库 Adapter 实现原理深度解析

揭秘底层:Convex Better Auth 数据库 Adapter 实现原理深度解析 【免费下载链接】better-auth Convex Better Auth 🔥 项目地址: https://gitcode.com/gh_mirrors/con/better-auth Better Auth 作为一款现代认证框架,本身与数据库完…

📅 2026/10/9 7:37:58
audiobox-aesthetics输出解析:用jq一行命令提取CE/CU/PC/PQ分数的4种玩法

audiobox-aesthetics输出解析:用jq一行命令提取CE/CU/PC/PQ分数的4种玩法

audiobox-aesthetics输出解析:用jq一行命令提取CE/CU/PC/PQ分数的4种玩法 【免费下载链接】audiobox-aesthetics Unified automatic quality assessment for speech, music, and sound. 项目地址: https://gitcode.com/gh_mirrors/au/audiobox-aesthetics au…

📅 2026/8/20 21:03:49
MORE NEWS

更多资讯

📰

免安装记事本实战:U盘便携、编码换行与避坑指南

简介:这是一份面向程序员、运维人员及日常文本处理用户的 Notepad 免安装绿色版资源,核心解决在权限受限、无法走常规安装流程的环境下快速获得一款功能完备的代码编辑器的问题。压缩包共 155 个文件,约 3.36MB,主体为 notepad.ex…

📰

Eclipse内网离线安装SVN插件site-1.8.22实战指南

简介:这是一份面向MyEclipse开发者的SVN集成插件包,对应1.8.22版本,用于在开发环境中完成代码提交、更新、检出、差异对比、日志查看、回滚及冲突处理等版本控制操作,适合需要为老版本MyEclipse补充SVN支持的开发者。压缩包共30个…

📰

Eclipse SVN插件site-1.8.22离线安装与JavaHL排错

简介:这份面向 Eclipse 与 MyEclipse 开发者的 SVN 集成插件包,对应 site-1.8.22 版本,提供可挂载的更新站点资源及配套安装说明,用于在 IDE 内接入 Subversion,完成代码提交、更新、差异对比、历史查看与冲突处理等版…

📰

GV7704四路SDI采集卡驱动链路配置与稳定性排查

简介:gv7704驱动.rar 面向基于 Hisi3531A 芯片平台进行 SDI 视频采集与设备控制的嵌入式开发者,重点解决 GV7704 硬件在 Hisi3531A 平台下的输入、读写与状态查询适配问题。压缩包共 10 个文件,约 90KB,以 7 个 c 源文件、2 个 h …

📰

FileZilla Server 0.9.39绿色版部署指南:服务注册与被动模式配置

简介:这份资源是 FileZilla Server 0.9.39 的汉化绿色版,面向需要在 Windows 环境下快速搭建 FTP 服务、又不想经历繁琐安装与英文界面困扰的运维人员、开发者及小型团队。它以免安装的绿色形态提供,解压即可运行,适合临时文件共享…

📰

基于微信小程序的校园食堂点餐系统【附源码+文档】

💕💕作者: 米罗学长 💕💕个人简介:混迹java圈十余年,精通Java、小程序、数据库等。 💕💕各类成品Java毕设 。ssm,springboot,vue等项目&#xff0…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬