Rust

Rust——生命周期

简而言之,即引用的有效作用域;一般情况下编译器会自动检查推导,但是当多个声明周期存在时,编译器无法推导出某个引用的生命周期,需要手动标明生命周期。 # 悬垂指针 悬垂指针是指一个指针指向了被释放的内存或者没有被初始化的内存。当尝试使用一个悬垂指针时,无法保证内存中的数据是否有效,从而导致程序的不确定 ......
周期 生命 Rust

Rust随笔——结构体打印和所有权转移

# 结构体打印 如果想打印结构体,并不能使用如以下方式进行打印 ```rust println!("{}",rectangle); ``` ![](https://picss.sunbangyan.cn/2023/07/29/114n2el.png) 会出现上图所示的错误,通过阅读不难得出——报错原 ......
所有权 随笔 结构 Rust

Rust语言入门

1. 资料: [Rust 教程 | 菜鸟教程 (runoob.com)](https://www.runoob.com/rust/rust-tutorial.html) 2. cargo: 是rust的包管理器和构建系统 ```shell cargo build # 将当前目录下的项目进行编译 ca ......
语言 Rust

用 Rust 生成 Ant-Design Table Columns

经常开发表格,是不是已经被手写Ant-Design Table的Columns整烦了?尤其是ToB项目,表格经常动不动就几十列。每次照着后端给的接口文档一个个配置,太头疼了,主要是有时还会粘错就尴尬了。那有没有办法能自动生成columns配置呢? ......
Ant-Design Columns Design Table Rust

如何让 Rust 不使用 Visual Studio 的工具链编译

假如你不想使用 Visual Studio 进行开发,也不想电脑上多出几个G的累赘,也可以选择使用 GNU 进行编译,在此记录一下更换工具链的方法。 ## 安装后更改 安装完成后,确保你的`rustup`命令可以正常使用。 在控制台中执行`rustup default stable-x86_64-p ......
工具 Visual Studio Rust

rust基础之分文件规划模块

***本文中所有名词称呼都是我自己的习惯叫法,不保证准确,一切以官方为准。*** 在实际项目中,当模块变多或者变大时,需要将模块放入单独的文件中,让代码更好维护。当一个模块有许多子模块时,也可以通过文件夹的方式来组织这些子模块。 如果需要将文件夹作为一个模块,需要显示指定暴露哪些子模块。 rustc ......
模块 文件 基础 rust

我常用的Rust crate备份

### `Cargo.toml` ```rust [package] name = "rust_hello" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-la ......
备份 常用 crate Rust

Rust 社区的代码准则

Rust 社区的代码准则,因为写的比较好被到处引用。原文在 https://www.rust-lang.org/policies/code-of-conduct 这里贴个 ChatGpt 的翻译 1. 我们致力于为所有人提供友好、安全和热情的环境,无论其经验水平、性别认同和表达、性取向、残疾、个人外 ......
准则 代码 社区 Rust

[记]Rust全局变量+多线程

~~~rust static mut Gods: f32 = 0.0; fn main() { std::thread::spawn(|| loop { unsafe { Gods += 1.0; } esleep::s(1);//延时1s }); std::thread::spawn(|| loo ......
线程 全局 变量 Rust

[记]Rust使用windows库开发串口功能

在Rust中,可以使用windows库来操作串口。以下是一个使用windows库实现串口功能的示例代码: 首先,在你的Cargo.toml文件中添加以下依赖项: ~~~toml [dependencies] windows = "0.36.0" ~~~ 然后,可以按照以下代码示例使用windows库 ......
串口 windows 功能 Rust

微软:加大力度在 Windows 11 使用 Rust

Windows 11 上周发布了新的测试版 (Insider Preview Build 25905)。 发布公告提到此版本已经使用 Rust 重写 Windows 11 内核中的部分模块。 据介绍,该预览版使用 safe Rust 对关键内核功能进行了早期实现。具体来说,win32kbase_rs ......
力度 Windows Rust 11

Rust 学习笔记:快速上手篇

# Rust 学习笔记:快速上手篇 这篇学习笔记将用于记录本人在快速上手 Rust 编程语言时所记录的学习心得与代码实例。为此,我会在[本笔记库](https://github.com/owlman/study_note)项目的`Programming/LanguageStudy/`目录下创建一个名 ......
笔记 Rust

张汉东的 Rust 实战课

你将获得系统梳理 Rust 核心知识点;吃透 Rust 异步编程理论基础;掌握异步框架开发工程实践要点。 课程介绍Rust 语言对它之前出现的很多优秀语言,做了一次现代化的完美总结。掌握 Rust 这一门语言,就相当于掌握了很多其他语言的精髓。Rust 也被设计为一门通用的编程语言,可以覆盖很多应用 ......
实战 Rust

async-await Rust: 200 多行代码实现一个极简 runtime

> What I cannot create, I do not understand Rust 中的 runtime 到底是咋回事, 为了彻底搞懂它, 我在尽量不借助第三方 crate 的情况下实现了一个玩具 runtime, 之所以说是玩具,因为它没有复杂的调度算法(只有一个全局 task qu ......
async-await runtime 代码 async await

rust 程序内存 profling 之旅

首先如果你使用的 macos,那么要做的第一件事情是找个 linux 的机器,要么服务器,要么虚拟机。不要用 macos 进行下面的操作,因为各种有问题。。。 比如我尝试使用 macos 读取 jemalloc 生成的数据结果 jeprof --show_bytes /Users/zzou/Desk ......
profling 内存 之旅 程序 rust

rust-bindgen报错 ‘Unable to find libclang的解决办法

Windows下面可能会遇到这个问题的解决方案: 1)把LLVM安装到没有空格的路径。 2)LIBCLANG_PATH的值不要加双引号。 thread 'main' panicked at 'Unable to find libclang: "couldn't find any valid shar ......
rust-bindgen libclang bindgen 办法 Unable

Rust 使用egui创建一个简单的下载器demo

仓库连接: https://github.com/GaN601/egui-demo-download-util 这是我第一个rust gui demo, 学习rust有挺长时间了, 但是一直没有落实到实践中, 本着对桌面应用的兴趣, 考察了slint、egui两种框架, 最后还是选择了egui. 这 ......
Rust egui demo

rust 自动化测试、迭代器与闭包、智能指针、无畏并发

编写测试可以让我们的代码在后续迭代过程中不出现功能性缺陷问题;理解迭代器、闭包的函数式编程特性;`Box ......
闭包 指针 智能 rust

在 kubernets pod 里使用 perf 直接调试 rust 程序

我们想要了解我们程序在运行时候的真实情况,但是感觉 rust 性能方面的调试真的比 go 麻烦非常多。 首先在 rust cargo.toml 中添加 [profile.release] debug = true 直接在 pod 里面进行调试限制比较多,首先我们可能需要安装一些必要的东西比如 per ......
kubernets 程序 perf rust pod

用RUST进行系统编程的自学资源

用RUST进行系统编程的自学资源 https://github.com/rcore-os/rCore/wiki/study-resource-of-system-programming-in-RUST 7~21天内高效学习 Rust 建议: 前提条件: 要求有基本数据结构,算法基础,相对了解或熟悉C ......
系统 资源 RUST

文盘Rust -- FFI 浅尝

rust FFI 是rust与其他语言互调的桥梁,通过FFI rust 可以有效继承 C 语言的历史资产。本期通过几个例子来聊聊rust与C 语言交互的具体步骤 ......
Rust FFI

Rust 笔记

Rust 这门语言真的是挺难的,主要在于编译器贼事儿逼,什么都要管。这篇文章主要内容是给 C++ 的每一样东西一个 Rust 平替。 # I/O ### 输出 `print!(), println!()`。其中的感叹号代表宏。用法: ```rust let a = 3; println!("a = ......
笔记 Rust

[记]Rust闭包加动态分发

~~~rust pub trait App { fn run(&mut self); } #[derive(Clone, Copy)] pub struct Cda{ d:i32, } impl Cda { fn new(num:i32)->Self{ Self { d: num } } fn in ......
闭包 动态 Rust

rust入门(一)

1、安装 Rust 无论使用何种系统, 均可以根据 Rust 官方网站提供的 rustup-init 工具完成 Rust 的安装. rustup-init 下载地址: https://www.rust-lang.org/zh-CN/tools/install 根据系统提示进行安装,安装完成后,验证是 ......
rust

Rust 入门

## 0x01 准备 ### (1)安装 Rust * 安装 Rust: * Windows 系统在[官网](https://www.rust-lang.org/tools/install)下载 Rust * 版本检测:`rustc --version` * 查看文档:`rustup doc` * ......
Rust

Rust async 关键字

# async 观察代码: ``` async fn dd(a: i32) -> i32 { dbg!(a); 2 * a } ``` 异步方法内可以执行await,很显然上面的代码等价于下面两种形式: ``` async fn dd(a: i32) -> i32 { dbg!(a); async ......
关键字 关键 async Rust

安装_rustup_rust_交叉编译测试

## [安装_rustup_rust_交叉编译测试](https://www.cnblogs.com/osnosn/p/17509203.html) **转载注明来源: [本文链接](https://www.cnblogs.com/osnosn/p/17509203.html) 来自[osnosn的 ......
rustup_rust rustup rust

Rust 过程宏 proc-macro 是个啥

## 定义一个 procedural macro 新建一个 lib 类型的 crate: ```bash cargo new hello-macro --lib ``` procedural macros 只能在 `proc-macro` 类型的 crate 内定义,所以需要修改 Cargo.tom ......
proc-macro 过程 macro Rust proc

Rust学习笔记——基于官网和Rust语言圣经(二、猜数游戏)

前面的hello world项目还是太old school了,这样用一个猜数字的游戏来快速了解下rust语言,以及为啥cargo那么好用的原因。不要拘束新的语法点,后面都会详细介绍! # 2.1猜数游戏:一次猜测 \-本节您将学会: ·let、match等方法 ·相关的函数 ·外部的crate ·. ......
Rust 圣经 语言 笔记

rust 集合、错误处理、泛型、Trait、生命周期、包

集合组织特性相同的数据;泛型可以定义任何抽象数据类型;生命周期限制所有权的作用域范围;错误处理使程序更健壮。 ......
周期 错误 生命 Trait rust