Rust学习笔记
学习之路|2021-7-2|最后更新: 2023-9-20
type
status
date
slug
summary
tags
category
icon
password

rust学习笔记

本文将介绍rust编程语言的基础知识和常用编程技巧。Rust是一种系统编程语言,具有内存安全和高性能的特性。在学习Rust之前,需要先了解一些基本概念和语法。

基本概念

Rust 是一门现代系统编程语言,它是一门具有高度安全性、并发性和速度的语言。Rust 通过所有权机制来管理内存,同时也通过不可变性和可变性的概念保证了内存安全。Rust 也引入了生命周期的概念,用于限制变量的作用域,从而进一步保证内存安全。
  • Ownership(所有权):Rust通过所有权机制来管理内存。每个值都有一个所有者,同时每个值在同一时间只能有一个所有者。当所有者离开作用域时,这个值就被销毁了。
  • Borrowing(借用):Rust中可以将值的所有权借给其他变量或函数使用,而不是转移所有权。这种操作被称为借用,目的是为了避免多个所有者同时对同一个值进行修改。
  • Lifetime(生命周期):Rust中每个变量都有一个生命周期,用于限制变量的作用域。生命周期的主要作用是为了在编译期检查内存安全,防止出现空指针和野指针等问题。
  • Mutability(可变性):Rust中变量默认是不可变的,可以使用mut关键字来声明变量可变。这种方式可以避免因为多个所有者同时对同一个值进行修改而引发的问题。

基本语法

Rust 具有类似于 C 和 C++ 的语法风格,但是也有一些新的概念和语法。下面是一些常用的语法:
  • 变量和类型定义:
  • 控制流:
  • 函数定义:

常用编程技巧

Rust 具有一些独特的编程技巧,下面是一些常用的技巧:
  • 使用match表达式处理多种情况:
  • 使用Option类型避免空指针异常:
 
 

引用与可变引用

*解引用 ,&引用,引用本身不可变,但是想修改引用怎么办,可变引用,&mut var
集合:
 
泛型 struct Person<T,U>{x:T,y:U}
实现接口 pub trait inerface_name{}
Result<Ok,Error>,利用?处理异常
panic!宏
expect ?的区别 结构体pub字段
闭包语法,类似lambda,
|parameter| statments or {statments}
生命周期注解
channel并发
 
5.12 生命周期注解 语法 三条规则 引用与借用与move的区别 解引用 智能指针中的Box<T>作用 Rc和Arc
同步与并发 thread::new 控制通信 推荐用channel mpsc的含义 mutex锁的访问
5.13 Rc共享所有权,Refcell实现对引用的修改
5.14 Rc的弱引用机制 downgrade返回一个弱引用指针 upgrade返回Option<Rc<T>>
 
5.16 str &str string &string array &array的区别
 

导包和导入模块

模块和包都得先用mod 挂载到当前文件,然后use 声明要导入到当前空间的函数
一般mod的函数只能在当前模块使用,若想要在下级模块中使用需要加上pub关键字
信息论编码Python源码剖析笔记
  • Giscus
  • Utterance