Coder Social home page Coder Social logo

sunface / rust-course Goto Github PK

View Code? Open in Web Editor NEW
23.0K 156.0 2.0K 11.07 MB

“连续六年成为全世界最受喜爱的语言,无 GC 也无需手动内存管理、极高的性能和安全性、过程/OO/函数式编程、优秀的包管理、JS 未来基石" — 工作之余的第二语言来试试 Rust 吧。<<Rust语言圣经>>拥有全面且深入的讲解、生动贴切的示例、德芙般丝滑的内容,甚至还有JS程序员关注的 WASM 和 Deno 等专题。这可能是目前最用心的 Rust 中文学习教程 / Book

Home Page: https://course.rs

CSS 1.85% JavaScript 3.52% Rust 79.37% PowerShell 1.93% Shell 3.26% Handlebars 10.07%
rust-lang rust book chinese rust-learning rust-course course programming-courses learning learn

rust-course's Introduction

Rust语言圣经

studyrut Stars Count Binder

教程简介

Rust语言圣经涵盖从入门到精通所需的 Rust 知识,目录及内容都经过深思熟虑的设计,同时语言生动幽默,行文流畅自如,摆脱技术书籍常有的机器味和晦涩感。

  • 深入度,在基础教学的同时,提供了深入剖析。浅尝辄止并不能让我们站上紫禁之巅

  • 专题内容,将 Rust 高级内容通过专题的形式一一呈现,内容内聚性极强,例如性能优化、手把手实现链表、Cargo 和 Tokio 使用指南、async 异步编程、标准库解析、WASM 等等

  • 内容索引,作为一本工具书,优秀的索引能力非常重要,遗忘不可怕,找不到才可怕

  • 规避陷阱和对抗编译器,只有真的上手写过一长段时间 Rust 项目,才知道该如何规避常见的陷阱以及解决一些难搞的编译器错误,而本书将帮助你大大缩短这个过程,提前规避这些问题

  • Cookbook,涵盖多个应用场景的实战代码片段,程序员上网查询文件操作、正则解析、数据库操作是常事,没有人能记住所有代码,而 Cookbook 可解君忧,Ctrl + C/V 走天下

  • 配套练习题,像学习一门大学课程一样学习 Rust 是一种什么感觉?Rust 语言圣经 + Rust 语言实战 双剑合璧,给你最极致的学习体验

总之在写作过程中我们始终铭记初心:为**用户打造一门全面的、深入的、持续更新的 Rust 教程。 新手用来入门,老手用来提高,高手用来提升生产力。

🏆 贡献者

非常感谢本教程的所有贡献者,正是有了你们,才有了现在的高质量 Rust 教程!


🏆


EluvK

AllanDowney

🏅


孙立刚

JesseAtSZ

Rustln

1132719438

创作感悟

截至目前,Rust 语言圣经已写了 170 余章,110 余万字,历经 800 多个小时,每一个章节都是手动写就,没有任何机翻和质量上的妥协( 相信深入阅读过的读者都能体会到这一点 )。

曾经有读者问过 "这么好的书为何要开源,而不是出版?",原因很简单:只有完全开源才能完美地呈现出我想要的教学效果

总之,Rust 要在国内真正发展起来,必须得有一些追逐梦想的人在做着不计付出的事情,而我希望自己能贡献一份微薄之力。

但是要说完全无欲无求,那也是不可能的,看到项目多了一颗 🌟,那感觉...棒极了,因为它代表了读者的认可和称赞。

你们用指尖绘制的星空,那里繁星点点,每一颗都在鼓励着怀揣着开源梦想的程序员披荆斩棘、不断前行,不夸张的说,没有你们,开源世界就没有星光,自然也就不会有今天的开源盛世。

因此,我恳请大家,如果觉得书还可以,就在你的指尖星空绘制一颗新的 🌟,指引我们继续砥砺前行。这个人世间,因善意而美好。

最后,能通过开源在茫茫人海中与大家相识,这感觉真好 :D

开源协议

在开源版权上,我们选择了 No License,这意味着读者可以随意的 fork 和阅读,但是不能私下修改后再包装分发,如果有这方面的需求,请联系我们,望理解。

借鉴的书籍

站在巨人的肩膀上,能帮我们看的更远,特此感谢以下巨人:

因为它们绝大部分是支持 APACHE + MIT 双协议的,因此我们选择了遵循其中的 MIT 协议,并在这里统一对借鉴的书籍进行说明。

社区 & 读者交流

  • 知乎: 孙飞 Sunface

  • RustCn 微信交流 2 群:

  • 微信公众号: 扫描下面的二维码关注公众号 Rust语言中文网

rust-course's People

Contributors

allandowney avatar allenyu0118 avatar bigbigdreamer avatar busydecoding avatar butonly avatar caoxiemeihao avatar caviar-x avatar chenxuuu avatar co1lin avatar eluvk avatar gfzum avatar glud123 avatar iscas-zac avatar jesseatsz avatar keithmonster avatar liewhite avatar mg-chao avatar mintnoii avatar p9s avatar rustln avatar sb-child avatar scott169 avatar sd44 avatar shenshouer avatar somoku avatar spike014 avatar sunface avatar tomoat avatar yif042 avatar zongzi531 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rust-course's Issues

建议固定一下rust playground运行的版本

比如这里的代码,因为默认用的2018版本运行,会报错:

fn main() {
    let arr = [1, 2, 3];
    let mut arr_iter = arr.into_iter();

    assert_eq!(arr_iter.next(), Some(1));
    assert_eq!(arr_iter.next(), Some(2));
    assert_eq!(arr_iter.next(), Some(3));
    assert_eq!(arr_iter.next(), None);
}

不知道用的是不是mdbook,如果是的话,最好可以固定用2021版本

欢迎一切类型的 PR

非常欢迎大家为 Rust Course 提交 PR,包括但不限于:

  • 文字和内容勘误
  • 现有章节的内容增加和完善
  • 根据已有的issue,提交 PR,这些 issue 往往都有 新增内容内容优化新增章节 等标签

提交PR

你可以选择fork到本地提交,也可以在线提交:

  1. 在书籍页面右上角,点击编辑图标,进入在线编辑页面
  2. 修改并校对无误后,在当前页面下方,输入标题和描述, 并点击Propose changes提交修改 (该修改会提交到你名下自动fork的仓库中,并没有直接提交到sunface/rust-course中)
  3. 在新页面点击Create pull request创建PR
  4. 等待merge合并😋

如果是简单修改,建议在线提交,否则最好fork到本地进行修改,这样更安全。

老鼠出洞03

看到 #253 帖子中,19日的Star数量2584颗,然而现在开只有2064颗,这500名真实的同学是太难而放弃了吗?

截屏2022-01-28 14 01 59

对你们的质疑是处于好心和实事求是的态度,请不要诬蔑这些善良的人 #242

中文 -> 英文翻译

本书的内容渐渐丰满起来,可以开始翻译成英文版了。

但是由于我这边所有时间需要投入到中文内容上,因此需要1-2个核心协作者,咱一起做这件事。

示例代码引用关键字误写

se std::sync::mpsc::{self, Receiver, Sender};

se std::sync::mpsc::{self, Receiver, Sender};  <--------- 这个少了一个字母u
enum Fruit {
    Apple(u8),
    Orange(String)
}
fn main() {
    let (tx, rx): (Sender<Fruit>, Receiver<Fruit>) = mpsc::channel();
    tx.send(Fruit::Orange("sweet".to_string())).unwrap();
    tx.send(Fruit::Apple(2)).unwrap();
    for _ in 0..2 {
        match rx.recv().unwrap() {
            Fruit::Apple(count) => println!("received {} apples", count),
            Fruit::Orange(flavor) => println!("received {} oranges", flavor),
        }
    }
}

进一步增加书内容的层次性

  1. 对于同一个章节内容,如果存在明显的难度阶梯,应该把该内容划分成两张:基础XXX和高级XXX,例如特征
  2. 基础和高级是放在同一个目录下,还是基础的放在一个目录下,高级的放在另一个目录下,例如基础Rust,高级Rust?
  3. 基础内容参考The Rust Book, 高级内容参考Rust in Action和 Rust for Rustaceans

typo

image
是零开销抽象吗?

3.1.2 NLL(Non-Lexical Lifetime)标题下

这违反了借用的规则 : 要么多个可变借用,要么一个不可变借用。

应该 改为 : 要么多个不可变借用,要么一个可变借用

想要解决的Rust问题

Rust有三难

  1. 部分概念难以理解
  2. 语法太多,难以学习,而且较为分散,有的时候忘记了不好查找
  3. 实际上手写代码,需要注意的点很多,缺乏一个上手和避坑指南,也缺乏一个常见问题汇总,提前学习这些可以显著的减少在实际项目中遇到问题不知道该怎么办的情况

关于2.4章复合类型的章节排列

2.4.复合类型章节末

接下来,我们将引入一个高级数据结构 - 结构体struct,来看看复合类型是怎样更好的解决这类问题。 开始之前,先来看看什么是元组.

下一节不是元组,而是2.4.1字符串与切片

看到这里有断片儿的感觉,是不是能重新编排下顺序?

内容优化建议请至 Discussions 板块讨论

大家如果对内容有建议,可以移步到Discussions板块进行讨论。

你们的建议非常宝贵,可以帮助rust-course在未来成为更好的开源 Rust 教程,感谢感谢😆。

目前还无法提供内容上的答疑解惑。。因为笔者时间实在有限,敬请谅解 :(

fix: 修正「数值类型」总结内容

Rust的数值上可以使用方法. 例如你可以用以下方法来将24.5取整: 13.14_f32.round(), 在这里我们使用了类型后缀,因为编译器需要知道13.14的具体类型

不是将 24.5 取整,应是将 13.14 取整。

PR: #111

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.