编程与软件工程fasterthanli.me
半小时学会 Rust
A half-hour to learn Rust
2021 — 2023,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这是一篇用约半小时快速带你过一遍 Rust 的教程,面向已有编程经验、想迅速了解 Rust 语法和核心概念的读者。文章用密集的代码示例讲解所有权、生命周期、trait 等 Rust 特色机制,帮助读者在短时间内建立整体印象。
为什么经久不衰:它用极短篇幅和大量示例把 Rust 的独特概念讲得清楚易懂,被许多读者认为比官方书更适合入门,因此多年反复被推荐。
HN 评论精选
Python 开发者认为文章让 Rust 出乎意料地易读,并对比了 Go 的实用与优雅取舍。
作为编译型语言经验有限的 Python 程序员,我原本觉得 Rust 代码比 C++、Java 或 Go 更吓人。读了一小时后,我被它的美感和成熟设计折服,它几乎像 Python 一样易读;用 Go 时我总觉得要牺牲优雅换实用。没想到一天内能入门 1-2% 的 Rust,感谢作者。想听听其他 Python 开发者怎么看。
nitred查看英文原文
As a Python programmer with limited experience with compiled languages, Rust code was more intimidating to read or look at than C++, Java or Go. After only an hour, I am overwhelmed by the sheer beauty and mature design of this language - it almost reads like Python or as well as any compiled language can. I cannot believe that I am smitten by Rust within an hour. Its features seem, obvious. My experience with Go was frustrating since I felt like I had to give up elegance for practicality. I did not expect to learn 1-2% of Rust when I woke up today. My thanks to the author. I'm curious what other what other developers who primarily use Python think of this article and Rust in general?
'static 对引用和类型约束含义不同,文章简化说法容易造成混淆。
关于“'static 是贯穿整个程序生命周期的特殊生命周期”这句话,我听过很多次,但指南指出:你会遇到两种情况,它们相关但微妙不同,是学习 Rust 时常见的困惑来源。'static 对引用和 trait 对象含义不同:'a: 'static 表示生命周期为 'a 的引用永远存活、永不被丢弃;T: 'static 表示类型 T 不含引用,实际上完全由 T 实例的所有者拥有。这两个东西同名却完全不同。
wokwokwok查看英文原文
> There is a special lifetime, named 'static, which is valid for the entire program's lifetime. I've heard this many times before, but as the guide[1] says: "You might encounter it in two situations... Both are related but subtly different and this is a common source for confusion when learning Rust." 'static means different things for references and trait objects. ie. 'a: 'static --> reference with lifetime 'a lives forever and can never be dropped. T: 'static --> Type T has no references in it; it is effectively 'entirely owned' by the owner of an instance of T. These are totally different things with the same name. (I believe technically there are actually three; `<T: 'static >` is a type constraint and `T + 'static` is a trait bound, but that both mean the same thing as far as I know) [1] - https://doc.rust-lang.org/rust-by-example/scope/lifetime/static_lifetime.html#static
认为非设计者视角的教程更好,甚至胜过官方书。
这是我见过的最好的 Rust 文章,比 Rust 官方书还好。我一直说 Rust 需要一本不是由语言设计者写的书,他们离语言太近了。现在我们有了。
Animats查看英文原文
That is the best article on Rust I've ever seen. Better than the Rust book. I've been saying that Rust needed a book that wasn't written by the designers of the language, who are too close to it. Now we have one.
适合作为入门起点,但不指望靠它精通。
我知道这不会让我成为 Rust 专家,那大概需要十年。但这正是我开始学 Rust 时想找的东西。感谢分享。
distcs查看英文原文
I know this is not going to make me an expert in Rust. That'll probably take 10 years. But this is just the kind of thing I was looking for to get started with Rust. Thanks for sharing it here.
历次讨论
同类还值得读
开源应用架构
The Architecture of Open Source Applications
《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。
编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选编程语言简史:简短、不完整且多半错误
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。
编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.comSQLite 是如何测试的
How SQLite is tested
SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…
编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选高级编程语言(2009)
Advanced programming languages (2009)
Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…
编程与软件工程上首页 8 次 · 2009–2022matt.might.net我的 Forth 与栈机器经历
Yosefk - My history with Forth & stack machines
作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。
编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选