首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏abin在路上

    Rust实战系列-Rust介绍

    也就是说,Cargo 执行 rustc(Rust 编译器)将 Rust 代码转换为可执行的二进制文件或共享库。 Rust 的特征:性能 Rust 充分发挥计算机的可用性能,Rust 不依赖 GC(垃圾收集器)来保证内存安全。 Rust 对安全的强调跨越了独立线程的界限,允许程序员可以随意使用并发编程特性。 10. Rust 的特征:内存效率 Rust 使你能够创建需要最小内存的程序。 Rust 的不足 循环数据结构 在 Rust 中很难对任意图结构这样的循环数据进行建模,实现一个双向链表是本科计算机科学水平的问题,但 Rust 的安全检查使得其很难实现。 将一个 Rust 项目移植到浏览器上只需要两个额外的命令行命令。 系统编程 许多大型程序都是用 Rust 实现的,包括编译器(Rust 本身)、视频游戏引擎和操作系统。

    1.9K22编辑于 2023-03-21
  • 来自专栏Rust语言学习交流

    Rust日报】Rust newtype 终极教程

    https://www.gauge.sh/blog/parsing-python-asts-20x-faster-with-rust Rust newtype 终极教程 通过Rust的newtype包装器可以提高类型安全性 这个教程非常全面,推荐阅读: https://www.howtocodeit.com/articles/ultimate-guide-rust-newtypes 微软Surface的UEFI是用Rust /ba-p/4159998 教程 - 使用Rust开发跨平台安全应用 讲解了Rust如何与TS配合。 https://www.firezone.dev/blog/using-tauri Rust 社区统计数据 这个统计各大社交平台上的Rust数据。显示Rust正在快速增长。2个月涨了几%。 https://rust.code-maven.com/rust-update-2024-06-17 --

    26910编辑于 2024-07-02
  • 35-Rust 教程 - unsafe Rust

    unsafe Rust 编译器:我不允许!你:我偏要!欢迎来到 Rust 的"法外之地" 引入 学到这里,你可能已经对 Rust 的借用检查器又爱又恨了。 恭喜你,这种想法说明你已经准备好了学习 unsafe Rust。 但先别急着兴奋。unsafe Rust 不是让你"为所欲为"的通行证,而是一把双刃剑。 可变静态变量 在安全 Rust 中,全局可变状态是禁止的。 实战案例:实现一个简单的 Vec 让我们看看 unsafe 在实际中的应用。 参考资料 The Rustonomicon - unsafe Rust Rust Book - unsafe Rust Rust by Example - unsafe

    11310编辑于 2026-06-04
  • 来自专栏Rust

    Rust match 教程

    基本概念 match 是 Rust 中的强大模式匹配语法,类似于其他语言的 switch,但功能更强大。它允许你根据变量的值执行不同的代码分支,并且可以匹配复杂的数据结构。 ("Other"), } } 匹配枚举类型 Rust 的枚举和 `match` 搭配非常强大: enum Direction { North, South, East, ("Result: {}", result); 穷尽性检查 Rust 要求 `match` 必须覆盖所有可能情况,否则编译报错。这保证了代码的安全性。 实战例子:Option 和 Result fn main() { let maybe_name = Some("Alice"); match maybe_name { Some ("Error: {}", e), } } 总结 `match` 是 Rust 的模式匹配工具,功能远超传统 `switch`。 可以匹配数字、枚举、结构体、元组等。

    10910编辑于 2026-04-23
  • 来自专栏Rust

    Rust 多线程编程教程:从基础到实战,解锁并发神力!

    但是并发编程的坑太多——数据竞争、死锁、内存泄漏……Rust 以其“零成本抽象”和铁腕借用检查器,化险为夷,让你写出安全、高效的多线程代码。 1. Rust 线程基础:spawn、join 和 move 闭包Rust 的线程在 std::thread 模块中。 实战场景:在游戏服务器中,Arc<Mutex<Player>> 共享玩家状态;或 CLI 工具并行下载文件,Mutex 记录进度条。警告:死锁风险!别在锁内调用另一个锁住的 Mutex。 调试神器:RUST_LOG=debug cargo run,或 gdb 附着。线程,让 Rust 并发如丝般顺滑 Rust 线程不是“可选糖衣”,而是安全并发的基石。 实战中,从小项目起步:试试并行排序日志文件,或构建 mini Web 服务器。Rust 的并发哲学:让编译器抓错,别让运行时崩溃。

    16510编辑于 2026-04-23
  • CubeCL Rust GPU计算教程

    新手也能学会的高性能gpu开发,只需要rust和cubel基础知识即可实现,让你的程序简单的使用gpu加速! CubeCL是一个现代化的Rust GPU计算框架,它让编写高性能、可移植的GPU内核变得简单。 简单易用:用Rust写GPU代码,学习曲线平缓 高性能:自动向量化优化,充分利用GPU算力 可移植:同一份代码可运行在WGPU/CUDA等不同后端 类型安全:Rust的类型系统保证代码安全性 提示: 即使没有GPU编程经验,通过本教程你也能快速上手CubeCL! GPU内核编程 与传统GPU编程不同,CubeCL允许直接用Rust编写运算逻辑。

    1K31编辑于 2025-04-09
  • 来自专栏abin在路上

    Rust实战系列-基本语法

    本文是《Rust in action》学习总结系列的第二部分,更多内容请看已发布文章: 一、Rust实战系列-Rust介绍 “主要介绍 Rust 的语法、基本类型和数据结构,通过实现一个简单版 grep 命令行工具,来理解 Rust 独有的特性。 数字类型 整数和小数(浮点数) Rust 使用相对传统的方式定义整数和小数,操作数字使用算数符号。为了实现不同类型的运算,Rust 支持运算符重载。 创建轻量级 grep 已经基本了解 Rust 如何处理数字,接下来会了解 Rust 如何处理 text 文本。 cargo 管理项目,rustup 管理 Rust 环境的安装,rustup 关注 Rust 工具链,能够在不同版本的编译器之间转换。

    3K10编辑于 2023-03-21
  • 20-Rust 教程 - 测试

    今天咱们就聊聊 Rust 的测试系统——内置的、强大的、让你爱上写测试的神器。 核心概念 Rust 的测试类型 类型 位置 用途 单元测试 源码文件内(#[cfg(test)]) 测试单个函数/模块 集成测试 tests/ 目录 测试整个库的 API 文档测试 文档注释中(///) : # 安装 dotenvy cargo add dotenvy # 创建 .env 文件 API_KEY=test_key // 测试前加载 dotenvy::dotenv().ok(); 实战案例 三剑客 测试要独立:不依赖顺序,不共享状态 文档测试:让文档示例永远正确 下篇预告: 咱们已经学了内存的基础(栈和堆),但 Rust 的内存模型可不止这些。 下篇深入聊聊Rust 的内存模型,看看所有权、借用、生命周期是怎么在内存层面工作的! 参考资料 Testing Chapter Integration Tests

    12410编辑于 2026-05-14
  • 36-Rust 教程 - FFI

    FFI 当 Rust 遇上 C:一场跨语言的"相亲",安全与自由的碰撞 引入 想象一下这个场景: 你是一个 Rust 程序员,代码写得风生水起,内存安全、并发无忧。 在 Rust 中,主要指 Rust 调用 C 或 C 调用 Rust。 为什么需要 FFI? 复用现有代码:几十年积累的 C 库,不能扔了吧? C 调用 Rust 函数 反过来,C 也可以调用 Rust 函数。这在给 C 程序提供 Rust 实现的高性能函数时很有用。 ("Message: {}", rust_str); // Rust 字符串 → C 字符串 let rust_string = String::from 实战案例:封装 SQLite C 库 让我们看一个真实的 FFI 封装案例——封装 SQLite 的 C API: use std::ffi::{CStr, CString}; use std::os:

    10200编辑于 2026-06-05
  • 来自专栏Web 技术

    Rust 易学教程】第 1 天:Rust 基础,基本语法

    今天,我们正式进入 Rust 基础的学习。在本文的内容中,我会为大家介绍以下内容: 基本 Rust 语法: 变量、标量和复合类型、枚举、结构、引用、函数和方法。 Rust 是个啥 Rust 是一种新的编程语言,在 2015 年发布了 1.0 版本,我会从以下方面让你知道 Rust 出现的意义: Rust 是一种静态编译语言,其作用与 c++ 类似。 Hi,I am Rust 了解了 Rust 是什么后,就让我们先来体验一番 Rust 最简单的程序: fn main() { println!("Hi, I am Rust!") Rust 在需要可变数量的参数(不允许函数重载)的情况下使用宏。 宏是“卫生的”,意味着它们不会意外地从它们所使用的范围中捕获标识符。Rust 宏实际上只是部分卫生的。 Rust 是多范式的。 为什么是 Rust 接下来,我会为你从几个方面介绍为什么 Rust 会在众多语言中突出重围。先来一个示例。

    1.4K20编辑于 2023-11-12
  • 16-Rust 教程 - 闭包

    Rust 里,有个好东西叫闭包(Closure),让你能随手写个"一次性函数",不用取名,随写随用。今天咱们就聊聊这个让代码更简洁的神器。 核心概念 什么是闭包? 闭包,说白了就是匿名函数。 闭包的三种形式 Rust 的闭包有三种"性格",取决于它怎么使用环境变量: 类型 语法 特点 Fn ` FnMut ` FnOnce ` 生活化类比: Fn:借书看——书还是图书馆的,你看完了别人还能看 , name); }; greet(); // Hello, Rust! Box(需要堆分配) fn make_adder_boxed(x: i32) -> Box<dyn Fn(i32) -> i32> { Box::new(move |y| x + y) } 实战案例 参考资料 Rust Book - 闭包 Rust by Example - Closures

    14710编辑于 2026-04-28
  • 21-Rust 教程 - 内存模型

    引入 你有没有想过,当你写下一行 let x = 5; 时,Rust 到底把你的 5 放在了哪里? 是随便找个地方塞进去?还是有个精心规划的"小区"? 今天咱们就来扒一扒 Rust 的内存模型,搞清楚你的数据到底住在哪儿,以及为什么 Rust 要这么设计。 Rust 说:"这种小东西,随便复制,不用管我!" "); process_data(&s); // 只是借用 process_data(&s); // 再借一次 process_data(&s); // 随便借 } 实战案例 有没有被 Rust 的所有权转移坑过?评论区聊聊你的"血泪史"! 参考资料 Rust Book - Stack and Heap Rust By Example - Box

    14010编辑于 2026-05-14
  • 04-Rust 教程 - 函数基础

    Rust 教程 - 函数基础 函数:代码界的"打工人",给啥干啥,干完交活 引入 你是不是已经写过一些 Rust 代码了? 今天咱们就来聊聊 Rust 里的函数,看看它和其他语言有什么不一样,以及为什么 Rust 编译器对函数的"返回值"这么较真。 } 表达式 vs 语句:Rust 的"灵魂拷问" 这是 Rust 新手最容易懵的地方。 ("{}", name); } 实战案例 案例 1:温度转换器 fn main() { let celsius = 25.0; let fahrenheit = celsius_to_fahrenheit 参考资料 Rust Book - 函数 Rust By Example - 函数

    14710编辑于 2026-03-30
  • 24-Rust 教程 - 高级 Trait

    Rust 的 Trait 可不止这些基础操作。 特征对象是 Rust 里运行时多态的核心。 特征对象在运行时不知道具体类型,所以: 不能返回 Self(不知道是啥类型) 不能有泛型(编译时不知道具体类型) 代码示例 示例 1:关联类型实战 // 定义一个图结构 trait Graph { // ✅ 正确 fn process(iter: impl Iterator<Item = i32>) {} 实战案例 案例 1:插件系统 // 插件 Trait trait Plugin { 参考资料 Rust Book - Advanced Traits Rust Book - Trait Objects Object Safety

    15510编辑于 2026-05-20
  • 11-Rust 教程 - 集合类型

    ("{} {}", s1, "Rust"); // 推荐! // 访问(注意:不能直接用索引!) 再统一添加 let to_add: Vec<_> = nums.iter().copied().collect(); for num in to_add { nums.push(num); } 实战案例 is great Rust is fast Rust is safe"; let counts = count_words(text); for (word, count) 下篇我们讲讲 Rust 的错误处理机制,让你优雅地处理各种异常情况! 参考资料 Rust Book - Vectors Rust Book - HashMaps Rust Book - Strings std::vec::Vec std::collections::HashMap

    15810编辑于 2026-04-13
  • 14-Rust 教程 - Trait 基础

    Trait 基础 Rust 的灵魂:定义、实现、默认实现、作为参数/返回值 引入 如果你学过 Java 或 C#,Trait 大概就是"接口"的亲戚。 但 Rust 的 Trait 比它们都强大! 我刚开始学 Rust 的时候,看到 Trait 就想:"这不就是接口吗?有啥特别的?" 后来才发现,Trait 是 Rust 类型系统的灵魂——泛型约束靠它、多态靠它、代码复用靠它,连运算符重载都靠它! Foo { fn foo(&self); } // Bar 继承 Foo,实现 Bar 必须先实现 Foo trait Bar: Foo { fn bar(&self); } 实战案例 参考资料 Rust Book - Traits Rust By Example - Traits std::fmt::Display std::fmt::Debug Orphan Rules

    14910编辑于 2026-04-28
  • 30-Rust 教程 - 消息传递

    没有争抢,只有通信 Rust 推崇方案 2——消息传递。 channel 是 Rust 标准库提供的消息传递机制。 Rust 编译器: "多个消费者?那消息到底归谁?我不允许这种 ambiguity!" tx.send("你好").unwrap(); }); thread::sleep(std::time::Duration::from_secs()); } 实战案例 参考资料 Rust Book - mpsc std::sync::mpsc 文档 Actor 模式

    10500编辑于 2026-06-03
  • 32-Rust 教程 - 并发模式

    // 线程继续运行,处理下一个任务 } } Err(_) => break, } } } 实战案例 参考资料 Rust Book - 并发模式 线程池实现 死锁预防 工作窃取

    10700编辑于 2026-06-03
  • 来自专栏全栈开发工程师

    Rust Vec<T> 集合使用教程

    Rust Vec 集合使用教程教程将介绍如何在 Rust 中使用 Vec<T> 集合。 Vec<T> 是一个动态数组,可以存储任意类型的元素。

    36500编辑于 2025-01-06
  • 38-Rust 教程 - 高级宏

    到过程宏:Rust 元编程的完全体 引入 上篇我们学了 macro_rules!,你已经能用它写一些很酷的宏了。 ::Error::new( input.ident.span(), "Only structs supported" ) .to_compile_error() .into(); 实战案例 恭喜你完成了 Rust 高级主题四部曲: ✅ 第 35 篇:unsafe Rust ✅ 第 36 篇:FFI ✅ 第 37 篇:宏编程 ✅ 第 38 篇:高级宏 这些是 Rust 中最强大也最复杂的特性 掌握它们,你就真正进入了 Rust 高手的行列! 下篇预告 高级主题学完了,接下来咱们进入 实战项目篇! Writing a Skeleton Driver - 过程宏实战

    6700编辑于 2026-06-08
领券