Rust 入门实战系列(1)- Hello World

Rust 入门实战:Hello World 与 Cargo 工具链解析
本文是 Rust 入门实战系列的第一篇,介绍了 Rust 语言的特点,如高性能、类型安全和并发。讲解了 Rust 的工具链,包括 rustup 和 cargo 的使用,以及如何编写和编译 Hello World 程序。通过学习,你可以了解 Rust 的安装、基础语法和 Cargo 的基本操作。

专栏开篇

Rust 这门语言有很多优势,但最令我好奇的地方在于,这还是第一次见到一个语言,从前端展示,到后端业务,到系统编程都能做。这一点太了不起了。

我们能想象用 JS 来写 Linux Kernel,或者用 C++ 写前端么?简直天方夜谭,但是这两个领域,Rust 可以。

第二个吸引我的点在于内存管理。Java,Python,Go 这类语言提供了 GC,工程师只管分配内存,不用管删除,提高了开发效率。而 Rust 则没有 GC,且不用手工管理内存,不会有野指针,并发安全,它通过【共享不可变,可变不共享】的理念,让运行时风险降低,现代高级语言能做到这一点很厉害。

作为这个系列第一篇,希望首先收集所有官方,权威的专栏,课程,资料。并通过 demo 来简单上手。

Rust 是什么

Rust is a multi-paradigm, general-purpose programming language. Rust emphasizes performance, type safety, and concurrency. Rust enforces memory safety—that is, that all references point to valid memory—without requiring the use of a garbage collector or reference counting present in other memory-safe languages.

简单说就是五个点:通用语言,高性能,类型安全,并发,无GC。

毕竟笔者主语言还是 Go,直观来看跟 Rust 相比有两个劣势:

  • 通常来说,Golang 的性能一般来说是足够的,无论是gc开销还是goroutine调度。但是如果你想追求极致性能,还是建议考虑 Rust,毕竟没有GC而且可以自定义并发运行时与 allocator。

  • 从代码风格上来看,golangci-lint 只会告诉你你不应该怎么样,而 cargo clippy 不仅可以告诉你不应该如何,还会告诉你你完整的上下文(一个lint可以同时标记多处代码)。

当然,Rust 陡峭的学习曲线跟 Go 还是有差距的,毕竟 Golang 整体非常简洁,上手成本很低,认真学的话一周以内就可以完全上手,但 Rust 还是需要理解很多概念,尤其是【所有权】。

但既然这么牛逼,这个成本还是非常值得的。

学习资料(持续更新)

专栏开篇还是希望把市面上已知的 reference,教程汇总一下,以后有需要了随时过来找。如果有遗漏的欢迎大家指出。

06-07
### Rust 编程语言概述及使用 Rust 是一种系统编程语言,专注于安全性、并发性和性能。它由 Mozilla 开发并于 2010 年首次发布。Rust 的设计目标是提供内存安全的同时保持高性能,并通过所有权(ownership)和借用(borrowing)机制实现这一目标[^1]。 #### 特性与优势 Rust 提供了许多独特的特性,使其在现代系统编程中脱颖而出: - **内存安全**:Rust 使用所有权模型来管理内存,确保没有空指针或数据竞争问题。 - **零成本抽象**:Rust 的 Future 组合器被实现为具有特征实现的普通结构,这使得编译器可以深度优化它们[^1]。 - **并发支持**:Rust 的所有权模型也适用于多线程环境,确保线程安全而无需运行时检查。 - **跨平台支持**:Rust 支持多种操作系统和架构,包括 Windows、Linux 和 macOS。 #### 缺点 尽管 Rust 具有许多优点,但也存在一些缺点。例如,问号运算符 `?` 在其他编程语言中的语义不一致,可能引发混淆[^2]。此外,Rust 的学习曲线较陡峭,特别是对于那些不熟悉所有权模型的开发者。 #### 示例代码 以下是一个简单的 Rust 程序示例,展示了如何使用 Future 进行异步操作: ```rust use futures::executor::block_on; async fn async_greet(name: &str) -> String { let greeting = format!("Hello, {}", name); greeting } fn main() { let future = async_greet("World"); let result = block_on(future); println!("{}", result); } ``` #### 应用场景 Rust 被广泛应用于各种领域,包括但不限于: - **Web 开发**:通过框架如 Rocket 或 Actix 实现高效的服务端开发- **嵌入式开发**:由于其无运行时和垃圾回收器,Rust 成为嵌入式系统的理想选择。 - **游戏开发**:Rust 提供了强大的工具链以支持游戏引擎开发。 ### 结论 Rust 是一种功能强大且灵活的编程语言,适合需要高性能和内存安全的应用场景。尽管存在一定的学习难度,但其提供的工具和生态系统足以弥补这一点。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值