Git Product home page Git Product logo

studyrust's Introduction

StudyRust 学习日记 源码

介绍

Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C++类似,但是设计者想要在保证性能的同时提供更好的内存安全。 Rust最初是由Mozilla研究院的Graydon Hoare设计创造,然后在Dave Herman, Brendan Eich以及很多其他人的贡献下逐步完善的。Rust的设计者们通过在研发Servo网站浏览器布局引擎过程中积累的经验优化了Rust语言和Rust编译器。Rust致力于成为优雅解决高并发和高安全性系统问题的编程语言,适用于大型场景,即创造维护能够保持大型系统完整的边界。这就导致了它强调安全,内存布局控制和并发的特点。标准Rust性能与标准C++性能不相上下。

目前Rust在商业领域增长迅速,其中包括:

  • Amazon,使用Rust 作为构建工具。
  • Atlassian,在后端使用Rust。
  • Dropbox,在前后端均使用了Rust。
  • Facebook,使用Rust 重写了源码管理工具。
  • Google,在Fuchsia 项目中部分使用了Rust。
  • Microsoft,在Azure IoT 网络上部分使用了Rust。
  • npm,在其核心服务上使用了Rust。
  • RedHat,使用Rust 创建了新的存储系统。
  • Reddit,使用Rust 处理评论。
  • Twitter,在构建团队中使用Rust。

目前国内巨头公司像字节跳动,蚂蚁金服等也都开始使用Rust语言了。

前言

这里是 Rust 学习日记 的全部源码源码。关于教程在简书CSDN掘金知乎同步更新。整套课程全部由笔者根据自己对Rust的理解和参考官方文档写的。当然本人水平有限,错误和不足之处在所难免,处理问题也有不妥之处,敬请各位大佬,专家批评改正。大家可以在这里提ISSUE或者在上述四个平台留言。

另外,本系列课程也是非常适合0编程语言基础的同学,如果您是Rust大神,那么可以忽略本系列的文章。本系列课程不是完全对官方文档的翻译,在文章中,我还会讲解一些常见的问题和注意事项,比较笔者已经踩过坑了。学习Rust之路可能比较陡峭,但是我会用最通俗的语言带你慢慢深入,课程将会从基础,进阶,实战,算法四个部分循序渐进的讲解。该系列教程所用的Rust版本是1.52.1(截至目前的最新版本)。

课程目前预计会更新100课时,简书CSDN不仅更新Rust教程,而且还会更新关于Rust初学者的一些练习题(约100题)。

讲个段子

两个初学者的对话。

C语言初学者:编译成功了,怎么运行又报错了...是哪里出了问题?

Rust语言初学者:怎么又编译失败了,程序什么时候能跑起来。。。

——如果你没有被Rust的编译器毒打过,请不要说你学过Rust

博客地址

反馈方式

由于本人水平有限,错误和不足之处在所难免,处理问题也有不妥之处,敬请各位大佬,专家批评改正。这里有以下三种方式反馈问题:

  • 在 Gitee 提ISSUE
  • 在 GitHub 提ISSUE
  • 在项目下面评论
  • 在上述四个平台留言

版权声明

源码仅供学习使用,切勿使用商业用途~

源码地址

源码目录

Part 1 学习日记

001-RUST 学习日记 第1课 ——Hello World

002-RUST 学习日记 第2课 ——Cargo

003-RUST 学习日记 第3课 ——IDE

004-RUST 学习日记 第4课 ——Rust规范

005-RUST 学习日记 第5课 ——变量和常量

006-RUST 学习日记 第6课 ——基本数据类型

007-RUST 学习日记 第7课 ——字面量和运算符

008-RUST 学习日记 第8课 ——类型转换

009-RUST 学习日记 第9课 ——输入与输出

010-RUST 学习日记 第10课 ——复合数据类型

011-RUST 学习日记 第11课 ——向量

012-RUST 学习日记 第12课 ——切片

013-RUST 学习日记 第13课 ——字符串(一)

014-RUST 学习日记 第14课 ——字符串(二)

015-RUST 学习日记 第15课 ——字符串的常用方法(一)

016-RUST 学习日记 第16课 ——字符串的常用方法(二)

017-RUST 学习日记 第17课 ——流程控制

018-RUST 学习日记 第18课 ——函数(一)

019-RUST 学习日记 第19课 ——函数(二)

020-RUST 学习日记 第20课 ——闭包

021-RUST 学习日记 第21课 ——迭代器

022-RUST 学习日记 第22课 ——结构体(上)

023-RUST 学习日记 第23课 ——结构体(下)

024-RUST 学习日记 第24课 ——枚举

Part 2 中级教程

001-Rust 中级教程 第1课——泛型

002-Rust 中级教程 第2课——结构体与泛型

003-Rust 中级教程 第3课——trait(1)

004-Rust 中级教程 第4课——trait(2)

005-Rust 中级教程 第5课——trait(3)

006-Rust 中级教程 第6课——trait(4)

007-Rust 中级教程 第7课——内存

008-Rust 中级教程 第8课——所有权(1)

009-Rust 中级教程 第9课——所有权(2)

010-Rust 中级教程 第10课——所有权(3)

011-Rust 中级教程 第11课——所有权与trait(4)

012-Rust 中级教程 第12课——共享所有权

013-Rust 中级教程 第13课——引用与借用(1)

014-Rust 中级教程 第14课——引用与借用(2)

015-Rust 中级教程 第15课——引用与借用(3)

016-Rust 中级教程 第16课——引用的lifetime(1)

017-Rust 中级教程 第17课——引用的lifetime(2)

018-Rust 中级教程 第18课——trait object(1)

019-Rust 中级教程 第19课——trait object(2)

020-Rust 中级教程 第20课——Box(2)

021-Rust 中级教程 第21课——Drop trait

022-Rust 中级教程 第22课——内部可变性(1)

023-Rust 中级教程 第23课——内部可变性(2)

024-Rust 中级教程 第24课——下划线

Part 3 进阶教程

001-Rust 进阶教程 第01课 闭包与所有权

002-Rust 进阶教程 第02课 详解迭代器(1)

003-Rust 进阶教程 第03课 详解迭代器(2)

Part Ext
  • rust 与 wasm

  • rust 与 wasm——操作dom

  • 抖音短视频解析工具

  • 抖音短视频解析工具(GUI)

  • 使用 Rust 实现与 ChatGPT 对话

未完待续...

studyrust's People

Contributors

1595901624 avatar

Stargazers

Jason Wang avatar TakayaTsukima_ avatar  avatar 徐执默 avatar chenxiang avatar Walhalla avatar Billy Lin avatar  avatar  avatar  avatar hello avatar  avatar 东子 avatar stardust avatar simbahebinbo avatar  avatar  avatar  avatar  avatar  avatar vvanglro avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

studyrust's Issues

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.