Rust 编程语言极简教程 --- 实例学习

简介: Rust 编程语言极简教程 --- 实例学习安装$ curl https://sh.rustup.rs -sSf | shinfo: downloading installerWelcome to Rust!This will downl...

Rust 编程语言极简教程 --- 实例学习

安装

$ curl https://sh.rustup.rs -sSf | sh
info: downloading installer

Welcome to Rust!

This will download and install the official compiler for the Rust programming 
language, and its package manager, Cargo.
           
...

Rust 实例学习

https://rustbyexample.com/hello.html

Introduction

  1. Hello World
    1.1. Comments
    1.2. Formatted print
    1.2.1. Debug
    1.2.2. Display
    1.2.2.1. Testcase: List
    1.2.3. Formatting
  2. Primitives
    2.1. Literals and operators
    2.2. Tuples
    2.3. Arrays and Slices
  3. Custom Types
    3.1. Structures
    3.2. Enums
    3.2.1. use
    3.2.2. C-like
    3.2.3. Testcase: linked-list
    3.3. constants
  4. Variable Bindings
    4.1. Mutability
    4.2. Scope and Shadowing
    4.3. Declare first
  5. Types
    5.1. Casting
    5.2. Literals
    5.3. Inference
    5.4. Aliasing
  6. Conversion
    6.1. From and Into
    6.2. To and From String
  7. Expressions
  8. Flow Control
    8.1. if/else
    8.2. loop
    8.2.1. Nesting and labels
    8.2.2. Returning from loops
    8.3. while
    8.4. for and range
    8.5. match
    8.5.1. Destructuring
    8.5.1.1. tuples
    8.5.1.2. enums
    8.5.1.3. pointers/ref
    8.5.1.4. structs
    8.5.2. Guards
    8.5.3. Binding
    8.6. if let
    8.7. while let
  9. Functions
    9.1. Methods
    9.2. Closures
    9.2.1. Capturing
    9.2.2. As input parameters
    9.2.3. Type anonymity
    9.2.4. Input functions
    9.2.5. As output parameters
    9.2.6. Examples in std
    9.2.6.1. Iterator::any
    9.2.6.2. Iterator::find
    9.3. Higher Order Functions
  10. Modules
    10.1. Visibility
    10.2. Struct visibility
    10.3. The use declaration
    10.4. super and self
    10.5. File hierarchy
  11. Crates
    11.1. Library
    11.2. extern crate
  12. Attributes
    12.1. dead_code
    12.2. Crates
    12.3. cfg
    12.3.1. Custom
  13. Generics
    13.1. Functions
    13.2. Implementation
    13.3. Traits
    13.4. Bounds
    13.4.1. Testcase: empty bounds
    13.5. Multiple bounds
    13.6. Where clauses
    13.7. New Type Idiom
    13.8. Associated items
    13.8.1. The Problem
    13.8.2. Associated types
    13.9. Phantom type parameters
    13.9.1. Testcase: unit clarification
  14. Scoping rules
    14.1. RAII
    14.2. Ownership and moves
    14.2.1. Mutability
    14.3. Borrowing
    14.3.1. Mutability
    14.3.2. Freezing
    14.3.3. Aliasing
    14.3.4. The ref pattern
    14.4. Lifetimes
    14.4.1. Explicit annotation
    14.4.2. Functions
    14.4.3. Methods
    14.4.4. Structs
    14.4.5. Bounds
    14.4.6. Coercion
    14.4.7. static
    14.4.8. elision
  15. Traits
    15.1. Derive
    15.2. Operator Overloading
    15.3. Drop
    15.4. Iterators
    15.5. Clone
  16. macro_rules!
    16.1. Syntax
    16.1.1. Designators
    16.1.2. Overload
    16.1.3. Repeat
    16.2. DRY (Don't Repeat Yourself)
    16.3. DSL (Domain Specific Languages)
    16.4. Variadics
  17. Error handling
    17.1. panic
    17.2. Option & unwrap
    17.2.1. Combinators: map
    17.2.2. Combinators: and_then
    17.3. Result
    17.3.1. map for Result
    17.3.2. aliases for Result
    17.3.3. Early returns
    17.3.4. Introducing ?
    17.4. Multiple error types
    17.4.1. Pulling Results out of Options
    17.4.2. Defining an error type
    17.4.3. Boxing errors
    17.4.4. Other uses of ?
    17.4.5. Wrapping errors
    17.5. Iterating over Results
  18. Std library types
    18.1. Box, stack and heap
    18.2. Vectors
    18.3. Strings
    18.4. Option
    18.5. Result
    18.5.1. ?
    18.6. panic!
    18.7. HashMap
    18.7.1. Alternate/custom key types
    18.7.2. HashSet
  19. Std misc
    19.1. Threads
    19.1.1. Testcase: map-reduce
    19.2. Channels
    19.3. Path
    19.4. File I/O
    19.4.1. open
    19.4.2. create
    19.5. Child processes
    19.5.1. Pipes
    19.5.2. Wait
    19.6. Filesystem Operations
    19.7. Program arguments
    19.7.1. Argument parsing
    19.8. Foreign Function Interface
  20. Meta
    20.1. Documentation
    20.2. Testing
  21. Unsafe Operations
相关文章
|
1月前
|
存储 Rust 网络协议
【Rust学习】10_定义枚举
在这一章我们学习 枚举(enumerations),也被称作 enums。枚举允许你通过列举可能的 成员(variants) 来定义一个类型。首先,我们会定义并使用一个枚举来展示它是如何连同数据一起编码信息的。接下来,我们会探索一个特别有用的枚举,叫做 Option,它代表一个值要么是某个值要么什么都不是。然后会讲到在 match 表达式中用模式匹配,针对不同的枚举值编写相应要执行的代码。最后,我们将学习 if let 结构,另一个简洁方便处理代码中枚举的结构。
39 7
|
1月前
|
Rust 安全 Java
编程语言新宠:Rust语言的特性、优势与实战入门
【10月更文挑战第27天】Rust语言以其独特的特性和优势在编程领域迅速崛起。本文介绍Rust的核心特性,如所有权系统和强大的并发处理能力,以及其性能和安全性优势。通过实战示例,如“Hello, World!”和线程编程,帮助读者快速入门Rust。
73 1
|
1月前
|
Rust 安全 编译器
编程语言新宠:Rust语言的特性、优势与实战入门
【10月更文挑战第26天】Rust语言诞生于2006年,由Mozilla公司的Graydon Hoare发起。作为一门系统编程语言,Rust专注于安全和高性能。通过所有权系统和生命周期管理,Rust在编译期就能消除内存泄漏等问题,适用于操作系统、嵌入式系统等高可靠性场景。
93 2
|
2月前
|
Rust 安全 开发工具
探索 Rust:系统编程语言的新纪元
【10月更文挑战第17天】介绍了 Rust 语言的核心特性,如内存安全、强大的并发编程模型和接近 C/C++ 的性能。文章还涵盖了 Rust 的开发工具,如 Cargo 和 Rustup,以及其在业界的应用,包括微软 Azure 和 Firefox 浏览器。Rust 正在成为系统编程领域的新星,为开发者带来高性能和安全性。
|
2月前
|
Rust 算法 安全
学习Rust
【10月更文挑战第13天】学习Rust
61 8
|
2月前
|
Rust 安全 算法
Rust的学习
【10月更文挑战第12天】Rust的学习
30 2
|
2月前
|
Rust 算法 安全
如何学习Rust编程?
【10月更文挑战第12天】如何学习Rust编程?
56 1
|
2月前
|
Rust 安全 Java
软件工程师,是时候了解下Rust编程语言了
2024年年初,美国政府发布了一份网络安全报告,呼吁软件开发人员停止使用容易出现内存安全漏洞的编程语言,比如:C和C++,转而使用内存安全的编程语言。这份报告由美国网络空间总监办公室 (ONCD) 发布,旨在落实美国总统拜登的网络安全战略,目标是“保护网络空间的基石”。 内存安全指的是程序在访问内存时,能够避免出现错误和漏洞,比如:缓冲区溢出、野指针等。Java由于其运行时错误检测机制,被认为是一种内存安全的语言。然而,C和C++允许直接操作内存地址,并且缺乏边界检查,容易出现内存安全问题。
80 10
|
3月前
|
Rust 安全 Java
探索 Rust:系统编程语言的新纪元
Rust 是一种由 Mozilla 研究院开发的开源系统编程语言,以其内存安全、高性能和现代并发工具著称,已连续多年被评为 Stack Overflow 最受喜爱的编程语言。Rust 通过所有权系统和借用检查等机制确保内存安全,并具备无垃圾回收、强大类型系统及高效并发编程特性。它广泛应用于系统级应用、WebAssembly、区块链技术和游戏开发等领域。Rust 提供丰富的学习资源和开发工具,包括官方文档、书籍、Cargo 包管理器和活跃社区支持,正逐渐成为系统编程领域的新力量。
|
2月前
|
Rust API
【Rust学习】09_方法语法
结构体让你可以创建出在你的领域中有意义的自定义类型。通过结构体,我们可以将相关联的数据片段联系起来并命名它们,这样可以使得代码更加清晰。在 impl 块中,你可以定义与你的类型相关联的函数,而方法是一种相关联的函数,允许您指定结构体的实例具有的行为。 但是结构体并不是创建自定义类型的唯一方式:让我们转向 Rust 的 enum 功能,将另一个工具添加到你的工具箱中。
22 0