2022年rust杂记

news2024/11/9 0:59:48

以下记录的是,我在学习中的一些学习笔记,这篇笔记是自己学习的学习大杂烩,主要用于记录,方便查找

1、相关学习链接

https://www.rust-lang.org/zh-CN/governance/ RUST 官网博客

https://kaisery.github.io/trpl-zh-cn/(最好的入门书)Rust 程序设计语言简体中文版

https://doc.rust-lang.org/1.30.0/book/second-edition/ch00-00-introduction.html

https://play.rust-lang.org/ 在线rust平台

https://doc.rust-lang.org/stable/rust-by-example rust-by-example

第三方库:https://crates.io/

库的使用https://docs.rs/

https://poly000.github.io/perf-book-zh/introduction.html rust性能优化

Rust编写的开源代码编辑器:https://docs.lapce.dev/

https://os.phil-opp.com/zh-CN/ Rust编写了一个小操作系统

https://github.com/LukeMathWalker/zero-to-production “在 Rust 中零到生产”的代码,一本关于使用 Rust 进行 API 开发的书

https://github.com/SeaDve/Kooha Rust写的优雅录屏工具

2、Rust语言环境搭建

在 Linux 或 macOS 上安装 rustup

安装:curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh

更新:rustup update

卸载: rustup self uninstall

cargo build --release 并使用 target/release 下的可执行文件进行测试

cargo doc 可生成注释文档

Rust IDE 环境:

https://blog.csdn.net/weixin_41195426/article/details/108896151

Rust下载速度慢:https://zhuanlan.zhihu.com/p/468840038

3、Rust语言知识

变量:只有 let 定义的变量不能变 ,let 和 mut 定义的变量 可变。

fn main() {
    let y=6;
    let mut x = 5;
    println!("The value of x is: {x}");
    x = 6;
    println!("The value of x is: {x}");
}

常量: const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3;

数据类型:

1、标量类型整型、浮点型、布尔类型和字符类型。

let x = 2.0; let y: f32 = 3.0; let sum = 5 + 10; let f: bool = false; let z: char = 'ℤ';

2、复合类型元组(tuple)和数组(array)

元祖: let tup: (i32, f64, u8) = (500, 6.4, 1);

let tup = (500, 6.4, 1); let (x, y, z) = tup;

println!("The value of y is: {y}");

let x: (i32, f64, u8) = (500, 6.4, 1); let five_hundred = x.0;

数组: let a = [1, 2, 3, 4, 5]; let first = a[0];

单行注释: // hello, world 文档注释:

Rust 有三种循环:loop、while 和 for

fn main() {
    let a = [10, 20, 30, 40, 50];
    let mut index = 0;

    while index < 5 {
        println!("the value is: {}", a[index]);

        index += 1;
    }
}

let a = [10, 20, 30, 40, 50];

    for element in a {
        println!("the value is: {element}");
    }

结构体:

struct User {
    active: bool,
    username: String,
    email: String,
    sign_in_count: u64,
}

fn main() {
    let user1 = User {
        email: String::from("someone@example.com"),
        username: String::from("someusername123"),
        active: true,
        sign_in_count: 1,
    };
}

fn main() {
    let mut user1 = User {
        email: String::from("someone@example.com"),
        username: String::from("someusername123"),
        active: true,
        sign_in_count: 1,
    };

    user1.email = String::from("anotheremail@example.com");
}

fn build_user(email: String, username: String) -> User {
    User {
        email: email,
        username: username,
        active: true,
        sign_in_count: 1,
    }
}

枚举:

enum IpAddrKind {
    V4,
    V6,
}

let four = IpAddrKind::V4;
let six = IpAddrKind::V6;

异步框架:Rocket 和 tide ,actix-web ,gotham-and-thruster 和tower ,hyper ,warp 和 http库 ,hyper-tower-http-http-body 层

4、Rust学习路线和好的学习园地

张汉东的Rust课,重个基础,逐一展开, 最后实践是 一个web框架。

Rust第一课: 重整个项目和实战,创建了各方面综合项目。

Rust写的操作系统:https://github.com/redox-os/redox

氧化还原-os/氧化还原:https://gitlab.redox-os.org/redox-os/redox 的镜像 (github.com)

https://github.com/pop-os Pop!_OS 系统

https://github.com/orgs/pop-os/repositories?page=5 Pop!_OS rust 学习

Pop!_OS将被证明是Linux领域的苹果,因为Pop!_OS是为他们的硬件量身定制的,不像Ubuntu。

https://pop.system76.com/ Pop!_OS by System76

https://manjaro.org曼扎罗山

https://archlinux.org/Arch Linux

rust项目:

https://github.com/bilelmoussaoui/process-viewer 跨平台进程查看器

https://github.com/bilelmoussaoui/wallabag-api api客户端

rm -rf ~/.cargo/.package-cache

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/185404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

应用性能监控对DMS系统综合分析案例

背景 DMS系统是某汽车集团的经销商在线系统&#xff0c;是汽车集团的重要业务系统。本次分析重点针对DMS系统性能进行分析&#xff0c;以供安全取证、性能分析、网络质量监测以及深层网络分析。 该汽车总部已部署NetInside流量分析系统&#xff0c;使用流量分析系统提供实时和…

好好的系统,为什么要分库分表?

不急于上手实战 ShardingSphere 框架&#xff0c;先来复习下分库分表的基础概念&#xff0c;技术名词大多晦涩难懂&#xff0c;不要死记硬背理解最重要&#xff0c;当你捅破那层窗户纸&#xff0c;发现其实它也就那么回事。 什么是分库分表 分库分表是在海量数据下&#xff0…

51单片机学习笔记-14 ADDA

14 ADDA [toc] 注&#xff1a;笔记主要参考B站江科大自化协教学视频“51单片机入门教程-2020版 程序全程纯手打 从零开始入门”。 注&#xff1a;工程及代码文件放在了本人的Github仓库。 14.1 AD/DA简介 14.1.1 AD/DA基本介绍 AD&#xff08;Analog to Digital&#xff09;…

FreeRTOS任务管理

RTOS 的核心是如果高效管理各个任务及任务之间通信&#xff0c;本章将向大家介绍 FreeRTOS 的任务管理&#xff0c;通过本章的学习&#xff0c;让大家对 RTOS 任务的理解更加深入&#xff0c; 为后面的学习做好铺垫。本章分为如下几部分内容&#xff1a; 1 任务管理介绍 2 常用…

ue4c++日记7(动画蓝图)

FVector Speed Pawn->GetVelocity();//获取方向向量FVector xyspeed FVector(Speed.X, Speed.Y,0);//不要z方向MovementSpeed xyspeed.Size();//xy取长//角色是否处于下落状态IsJumping Pawn->GetMovementComponent()->IsFalling();//#include "GameFramewor…

FreeRTOS中的信号量实验

信号量是操作系统中重要的一部分&#xff0c;信号量一般用来进行资源管理和任务同 步&#xff0c;FreeRTOS 中信号量又分为二值信号量、计数型信号量、互斥信号量和递归 互斥信号量。不同的信号量其应用场景不同&#xff0c;但有些应用场景是可以互换着使用。 本章要实现的功能…

【数据结构从0到1之树的初识】

目录 1.树的表达方式 1.1 树的定义 1.2树的相关概念 1.3树的存储结构 1.3.1 双亲表示法 1.3.2 孩子表示法 1.3.3 孩子兄弟表示法 1.4树在实际中的应用 后记&#xff1a; &#x1f57a;作者&#xff1a; 迷茫的启明星 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点…

Lua 迭代器

Lua 迭代器 参考文章&#xff1a; 菜鸟教程。 https://cloud.tencent.com/developer/article/2203215 迭代器&#xff08;iterator&#xff09;是一种对象&#xff0c;它能够用来遍历标准模板库容器中的部分或全部元素&#xff0c;每个迭代器对象代表容器中的确定的地址。 在 L…

23种设计模式之七种结构型模式

23种设计模式之七种结构型模式1. 设计模式概述1.1 什么是设计模式1.2 设计模式的好处2. 设计原则分类3. 详解3.1 单一职责原则3.2 开闭原则3.3 里氏代换原则3.4 依赖倒转原则3.5 接口隔离原则3.6 合成复用原则3.7 迪米特法则4. Awakening1. 设计模式概述 我们的软件开发技术也包…

[Python从零到壹] 番外篇之可视化利用D3库实现CSDN博客每日统计效果(类似github)

欢迎大家来到“Python从零到壹”&#xff0c;在这里我将分享约200篇Python系列文章&#xff0c;带大家一起去学习和玩耍&#xff0c;看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解&#xff0c;真心想把自己近十年的编程经验分享给大家&#xff0c;希望…

关于对公司做项目的一些想法

项目管理法则里面最重要的是如下的三角形&#xff1a;基于一定的范围、合理的时间和足够的成本下实现项目完成&#xff0c;并保证质量。项目中最重要的是质量&#xff0c;质量不行就意味着项目失败&#xff0c;请参考大跃进时期的大炼钢铁&#xff08;多快好省大炼钢&#xff0…

是什么影响了 MySQL 索引 B + 树的高度?

提到 MySQL&#xff0c;想必大多后端同学都不会陌生&#xff0c;提到 B 树&#xff0c;想必还是有很大部分都知道 InnoDB 引擎的索引实现&#xff0c;利用了 B 树的数据结构。 那 InnoDB 的一棵 B 树可以存放多少行数据&#xff1f;它又有多高呢&#xff1f; 到底是哪些因…

WebRTC → 信令服务器

相关简介 信令&#xff1a;驱动系统运转。控制各个模块的前后调用关系;业务不同&#xff0c;逻辑不同&#xff0c;信令也会千差万别 要实现一对一通信&#xff0c;驱动系统的核心就是信令。信令控制着系统各个模块之间的前后调用关系&#xff0c;比如当收到用户成功加入房间后…

3D模型在线查看利器【多种格式】

BimAnt 3DViewer网站可以 打开多种 3D 文件格式并在你的浏览器中可视化展示3D模型&#xff0c;支持 obj、3ds、stl、ply、gltf、glb、off、 3dm、fbx 等等。 1、支持的3D模型格式 BimAnt 3DViewer网站支持多种文件格式的导入和导出。 如果文件格式有文本和二进制版本&#x…

Minecraft 1.19.2 Fabric模组开发 09.Mixin

我们今天用mixin在1.19.2 fabric中实现一个望远镜 1.由于fabric已经自动配置好了mixin&#xff0c;所以我们无需配置mixin&#xff0c;先在ItemInit中新建一个我们的望远镜物品&#xff1a; ItemInit.java public static final Item BIRDWATCHER registerItem("birdwat…

Smart-doc的脚本生成在线文档(精简官方文档描述)

Smart-doc优点&#xff1a; 无侵入的接口文档、在线文档生成器。三种生成文档方式。对于程序代码开发中只需要加注释&#xff08;符合一定的语法&#xff0c;五分钟可掌握&#xff09;就能生成在线文档。可以支持c、java、php、node等等常见的主流语言。 如何使用&#xff1a; …

47.Isaac教程--ORB

ORB ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 文章目录ORBGem 提供的类型关键点描述符如何使用 Gem&#xff08;界面&#xff09;构建包Isaac Codelets示例应用程序主机设备嵌入式 Jetson 设备这个 gem 提供了一个特征检测器和描述符提取器…

2011年专业408算法题

文章目录0 结果1 题目2 思路2.1 思路1&#xff08;暴力解&#xff1a;排序&#xff09;2.2 思路2&#xff08;较优解&#xff1a;归并合并数组&#xff09;2.3 思路3&#xff08;较优解&#xff1a;数组指针后移&#xff09;2.4 思路4&#xff08;最优解&#xff1a;两个数组的…

webpack是如何进行依赖图谱收集的?

我自己学习webpack已有很长时间了&#xff0c;但是经常会遇到这样的问题: 可以熟练配置webpack的一些常用配置&#xff0c;但是对一些不常见的api或者概念总是云里雾里。因此&#xff0c;对着网上资料手写了一个简易版的webpack&#xff0c;现在对其中的依赖图谱收集部分进行梳…

Numpy(7)—字节交换、NumPy 副本和视图、深浅拷贝、矩阵库、NumPy 线性代数、NumPy IO(读写)、NumPy Matplotlib

1.字节交换 import numpy as npA np.array([1, 256, 8755], dtypenp.int16) print(A) print(list(map(hex, A))) print(A.byteswap(inplaceTrue)) print(list(map(hex, A)))2.NumPy 副本和视图 副本是一个数据的完整的拷贝&#xff0c;如果我们对副本进行修改&#xff0c;它不…