Rust
Rust中的Copy和Clone
1.Copy和Clone Rust中的Copy和Clonetrait都允许创建类型实例的副本。它们都提供了一种复制类型实例的方法,但它们之间存在一些重要的区别。了解这些区别有助更好地使用这两个特征。 2. Copytrait Copytrait允许按位复制类型的实例。这意味着当您将一个变量赋值给另一 ......
Writing a file system from scratch in Rust
Writing a file system from scratch in Rust2020-07-27 https://blog.carlosgaldino.com/writing-a-file-system-from-scratch-in-rust.html Data produced by p ......
Rust 知识积累(6)
impl Trait 使用(与泛型类似) // 入参 举例 // 类似与 fn prints_it<T:String+std::fmt::Display>>(input: T){} fn prints_it(input: impl Into<String> + std::fmt::Display){ ......
Rust中的智能指针:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak<T>
Rust中的智能指针是什么 智能指针(smart pointers)是一类数据结构,是拥有数据所有权和额外功能的指针。是指针的进一步发展 指针(pointer)是一个包含内存地址的变量的通用概念。这个地址引用,或 ” 指向”(points at)一些其 他数据 。引用以 & 符号为标志并借用了他们所 ......
一个简单的 rust 项目 飞机大战
Rust 实现的飞机游戏 简介 一个使用 bevy 引擎制作的飞机游戏。 原视频教程地址,github 地址。 因为 bevy 已经升级到 0.10.1 了,所以重新做一遍。顺带手出个教程。 下面是做的部分变动: 将激光以及玩家的移动模块进行了拆分。 新增了背景图片。 新增了游戏状态管理 Welco ......
rust读取txt
use std::fs::File; use std::io::{BufRead, BufReader}; fn main() { let file = File::open("f.txt").expect("File not found"); let reader = BufReader::new ......
提高rust的crates构建速度
一直以来rust的crates构建速度都比较慢,因为rust把crates库的索引保存到了GitHub上面(https://github.com/rust-lang/crates.io-index)。 而国内访问GitHub速度比较慢,其次是下载crates依赖时,是要完全同步这个仓库才能执行下一步 ......
Rust编程语言入门之无畏并发
无畏并发 并发 Concurrent:程序的不同部分之间独立的执行(并发) Parallel:程序的不同部分同时运行(并行) Rust无畏并发:允许你编写没有细微Bug的代码,并在不引入新Bug的情况下易于重构 注意:本文中的”并发“泛指 concurrent 和 parallel 一、使用线程同时 ......
rust特征对象
rust语法真丑啊.... 看完trait之后,我整个人都不好了,然后看特征对象的时候,我人是比较懵逼的。 0 概述 特征对象:指向==实现了某个特征的==一系列==实例==。 这种映射关系存在一张表内(vtable),可以在==运行时==通过特征对象找到具体调用的类型方法 可以通过 & 引用或者 ......
rust源使用sparse
[source.crates-io] # To use sparse index, change 'rsproxy' to 'rsproxy-sparse' replace-with = 'rsproxy-sparse' [source.rsproxy] registry = "https://rs ......
Rust
宏 print!("Hello, World"); #[macro_export] #[stable(feature = "rust1", since = "1.0.0")] #[cfg_attr(not(test), rustc_diagnostic_item = "print_macro")] ......
Pake 基于rust 开发的快速web 页面打包app 的工具
Pake利用了tauri 可以实现web 页面快速打包桌面app 说明 对于希望快速打开一个桌面应用的场景,Pake 还是值得试用的 参考资料 https://github.com/tw93/Pake ......
Rust编程语言入门之智能指针
智能指针 智能指针(序) 相关的概念 指针:一个变量在内存中包含的是一个地址(指向其它数据) Rust 中最常见的指针就是”引用“ 引用: 使用 & 借用它指向的值 没有其余开销 最常见的指针类型 智能指针 智能指针是这样一些数据结构: 行为和指针相似 有额外的元数据和功能 引用计数(Referen ......
2023年Rust发展如何?
1. 引言 Rust是一种系统编程语言,它注重安全、并发和内存效率。自2010年首次发布以来,Rust一直在快速发展,吸引了越来越多的开发者加入其社区。Rust语言的设计目标是提供一种安全、并发和实用的语言,它可以满足系统编程的需求,同时也适用于其他领域。 2. Rust在2022年的发展趋势 在2 ......
Rust中的derive属性详解
1. Rust中的derive是什么? 在Rust语言中,derive是一个属性,它可以让编译器为一些特性提供基本的实现。这些特性仍然可以手动实现,以获得更复杂的行为。 2. derive的出现解决了什么问题? derive属性的出现解决了手动实现一些特性时需要编写大量重复代码的问题。它可以让编译器 ......
Moves, copies and clones in Rust
原文链接:Moves, copies and clones in Rust 简介(Introduction) move 和 copy 是 Rust 中的基础概念。这对于来自 Ruby、Python 或 C#等垃圾回收语言的程序员来说可能是完全陌生的。这些术语在 C++中也确实存在,但它们在 Rust ......
rust模式匹配(可驳模式匹配与不可驳模式匹配)
rust的一个特性就是模式匹配(OOP编程语言好像都有?),模式匹配常常和变量绑定一起考虑 常见的模式匹配有: match、if let、while let、let、for、函数参数等等 (for和let我个人认为说是模式匹配,其实有点牵强了,除非这样let (x,y) = (1,2) 可驳与不可驳 ......
文盘Rust -- 用Tokio实现简易任务池
Tokio 无疑是 Rust 世界中最优秀的异步Runtime实现。非阻塞的特性带来了优异的性能,但是在实际的开发中我们往往需要在某些情况下阻塞任务来实现某些功能。 ......
rust数组
概述 rust中数组分为两类: 长度固定的array 动态数组vector array的效率比vector高,array存栈上,vector存堆上 array fn main() { // [类型;长度] let a: [i32; 5] = [1, 2, 3, 4, 5]; } 数组元素类型要统一, ......
Rust 版本一直是 1.4 或者其它版本
Rust 版本一直是 1.4 或者其它版本 通过rustup update 升级或者 rustup default 设置版本也不行 解决方法 删除 rust-toolchain 这个东西,这个东西覆盖了 ......
Rust中的迭代器的使用:map转换、filter过滤、fold聚合、chain链接
什么是迭代器 Rust中的迭代器是一种强大的工具,它提供了一种灵活、通用的方法来遍历序列。迭代器是实现了Iterator trait的类型,并需要至少实现一个next函数,用于让迭代器指向下一个迭代对象,并返回一个Option用于指示对象是否存在。 fn next (&mut self) -> Op ......
RUST——slice类型
一个编程练习 要求:编写一个函数,该函数接收一个用空格分隔单词的字符串,并返回在该字符串中找到的第一个单词。如果函数在该字符串中并未找到空格,则整个字符串就是一个单词,所以应该返回整个字符串。 //slice使用示意 fn main() { let s=String::from("Today I w ......
RUST——借用与引用
引用与借用 引用可以保证一个对象的引用作为参数而不是所有权 fn main() { let s1=String::from("hello"); let len=cal_len(&s1); println!("The length of {} is {}",s1,len); } fn cal_len( ......
RUST——所有权
1 所有权 Link 1.1 概念 fn main() { { let s="hello"; } println!("{s}");//错误 } ~ 当s进入作用域时,有效 持续到离开作用域为止 如果运行上面的代码片段,会发现会报错,因为s只在{}对应的作用域有效,出来即删 1.2 拷贝 1.2.1 ......
Rust中的into函数和from函数
1.Rust中的into函数和from函数是做什么用的? into函数是Rust语言中的一个转换函数,它属于Into trait。它可以将一个类型转换为另一个类型。实现了From trait的类型会自动获得Into trait的实现,因此通常建议实现From而不是直接实现Into。例如,我们可以很容 ......
RUST——控制流(if/loop/while)
1. if语句 下面看一个示例: fn main() { let number = 6; if number % 4 == 0 { println!("number is divisible by 4"); } else if number % 3 == 0 { println!("number i ......
rust 提示窗口
[target.'cfg(windows)'.dependencies] winapi = { version = "0.3", features = ["winuser"] } [dependencies] #[cfg(windows)] extern crate winapi; use std: ......
arroyo 基于rust开发的流处理引擎
arroyo 基于rust开发的流处理引擎 包含的特性 sql 以及rust pipelines 可以直接每秒百万级别的事件 支持windows 以及joins 的状态处理 基于状态checkpointing 的支持容错以及恢复的pipelines 通过dataflow 模型的及时流处理 使用场景 ......
RUST——函数
参数 RUST函数中的参数需要声明类型,这一点也和cpp一样,同时main一般作为程序入口,调用其他函数,其他函数需要在可被调用的作用域中 fn main() { println!("Hello, world!"); func(); let y:i32=67; func1(y); func2(5,' ......
RUST——数据类型
RUST中文官方教程【Link】 1. 标量数据类型 1.1 整型 |长度|有符号|无符号| | : : | : : | : : | |8-bit|i8|u8| |16-bit|i16|u16| |32-bit(默认类型)|i32|u32| |64-bit|i64|u64| |126-bit|i12 ......