rust从入门到放弃
文章平均质量分 71
怪我冷i
这个作者很懒,什么都没留下…
展开
-
Rust GUI框架Tauri V1 入门
Tauri是一款用Rust构建的开源框架,用于创建轻量级、安全且高效的桌面应用程序。它将Rust的强大功能与Web技术(如HTML、CSS和JavaScript)相结合,提供了一种现代的、跨平台的方式来开发桌面应用。Tauri的核心理念是“最小权限原则”,只在必要时调用操作系统API,以降低攻击面。原创 2024-09-15 00:30:00 · 1162 阅读 · 0 评论 -
rust GUI框架iced入门
iced是Rust的跨平台GUI库。它的灵感来自Elm,一种用于构建web应用程序的令人愉快的函数式语言。作为一个GUI库,iced可以帮助您为Rust应用程序构建图形用户界面。iced非常注重简单性和类型安全性。因此,iced试图提供简单的构建块,这些构建块可以与强类型结合在一起,以减少运行时错误的机会。在继续之前,您应该对Rust有一些基本的了解。如果你是Rust的新手,或者在某个时候感到迷茫,我建议你阅读Rust官方书籍。原创 2024-09-15 00:15:00 · 465 阅读 · 0 评论 -
rust学习——关联类型
关联类型是Rust中一种特殊的泛型抽象机制。在trait中,可以定义一个或多个关联类型,这些关联类型与trait的实现类型相关联。关联类型允许我们在trait中使用泛型,但不需要提前指定具体的类型。原创 2024-09-13 13:26:05 · 698 阅读 · 0 评论 -
使用Rustup快速无缝升级Rust
Rustup 是 Rust 官方的跨平台 Rust 安装工具。我们可以使用rustup升级rust版本。原创 2024-09-14 01:00:00 · 1766 阅读 · 0 评论 -
rust学习——move关键字
在章节中,有讲过move关键字在闭包中的使用可以让该闭包拿走环境中某个值的所有权,同样地,你可以使用move来将所有权从一个线程转移到另外一个线程。以上代码在子线程的闭包中捕获了环境中的 v 变量,来看看结果:其实代码本身并没有什么问题,问题在于 Rust 无法确定新的线程会活多久。我们把代码改成这样。原创 2024-07-29 00:30:00 · 544 阅读 · 0 评论 -
rust学习——数组
程序代码3];3] = [0;3];3];print!("{:?}: ", a);print!println!("\t({:?运行输出代码解释这段代码的功能是创建和操作一些固定大小的数组,并打印出数组的元素以及它们与10的和,最后计算并打印出数组的元素之和。首先定义了一个名为one的数组,包含三个整数1、2、3。然后定义了一个名为two的固定大小数组,包含三个整数1、2、3。接着定义了两个名为blank1和blank2的固定大小数组,都包含三个整数0。原创 2024-07-20 00:30:00 · 769 阅读 · 0 评论 -
rust学习——智能指针Rc
Rc/Arc是不可变引用,你无法修改它指向的值,只能进行读取,如果要修改,需要配合后面章节的内部可变性RefCell或互斥锁Mutex一旦最后一个拥有者消失,则资源会自动被回收,这个生命周期是在编译期就确定下来的Rc只能用于同一线程内部,想要用于线程之间的对象共享,你需要使用ArcRc是一个智能指针,实现了Deref特征,因此你无需先解开Rc指针,再使用里面的T,而是可以直接使用T,例如上例中的。原创 2023-10-30 00:30:00 · 758 阅读 · 1 评论 -
rust学习——智能指针
Rust 标准库中定义的那些智能指针,虽重但强,可以提供比引用更多的功能特性,例如本章将讨论的引用计数智能指针。该智能指针允许你同时拥有同一个数据的多个所有权,它会跟踪每一个所有者并进行计数,当所有的所有者都归还后,该智能指针及指向的数据将自动被清理释放。而智能指针则不然,它虽然也号称指针,但是它是一个复杂的家伙:通过比引用更复杂的数据结构,包含比引用更多的信息,例如元数据,当前长度,最大可用长度等。,它们的数据结构中不仅仅包含了指向底层数据的指针,还包含了当前长度、最大长度等信息,其中。原创 2023-10-25 22:03:48 · 743 阅读 · 0 评论 -
rust学习——插件rust-analyzer安装与配置
rust-analyzer有一个。安装前请先卸载其他rust插件。首次安装会下载语言服务。原创 2023-10-28 00:30:00 · 2053 阅读 · 0 评论 -
rust学习——泛型 (Generics)
在编程的时候,我们经常利用多态。通俗的讲,多态就是好比坦克的炮管,既可以发射普通弹药,也可以发射制导炮弹(导弹),也可以发射贫铀穿甲弹,甚至发射子母弹,没有必要为每一种炮弹都在坦克上分别安装一个专用炮管,即使生产商愿意,炮手也不愿意,累死人啊。我们在编程中,经常有这样的需求:用同一功能的函数处理不同类型的数据,例如两个数的加法,无论是整数还是浮点数,甚至是自定义类型,都能进行支持。在之前的泛型中,可以抽象为一句话:针对类型实现的泛型,所有的泛型都是为了抽象不同的类型,那有没有针对值的泛型?原创 2023-10-23 22:15:00 · 1057 阅读 · 0 评论 -
rust学习——方法 Method
Rust 使用implx: f64,y: f64,// new是Circle的关联函数,因为它的第一个参数不是self,且new并不是关键字// 这种方法往往用于初始化当前结构体的实例Circle {x: x,y: y,// Circle的方法,&self表示借用当前的Circle结构体我们这里先不详细展开讲解,只是先建立对方法定义的大致印象。下面的图片将 Rust 方法定义与其它语言的方法定义做了对比:可以看出,其它语言中所有定义都在class。原创 2023-10-24 23:00:00 · 809 阅读 · 1 评论 -
rust学习—— 复合类型结构体、复合类型枚举、复合类型元组
Rust 中的结构体(Struct)与元组(Tuple)都可以将若干个类型不一定相同的数据捆绑在一起形成整体,但结构体的每个成员和其本身都有一个名字,这样访问它成员的时候就不用记住下标了。元组常用于非定义的多值传递,而结构体用于规范常用的数据结构。结构体的每个成员叫做"字段"。注意:如果你常用C/C++,请记住在 Rust 里struct语句仅用来定义,不能声明实例,结尾不需要;符号,而且每个字段定义之后用分隔。原创 2023-10-25 22:30:00 · 327 阅读 · 0 评论 -
rust学习——操作字符串、字符串转义、操作UTF8-字符串 (操作中文字符串)
该方法是直接操作原来的字符串。但是存在返回值,其返回值是一个Option类型,如果字符串为空,则返回None。let mut string_pop = String::from("rust pop 中文!");dbg!(p1);dbg!(p2);dbg!p1 = Some(',p2 = Some('文',string_pop = "rust pop 中"原创 2023-10-24 21:00:00 · 1154 阅读 · 0 评论 -
rust学习——字符串、字符串字面量、切片(slice)、字符串 slice
Rust 中的字符是 Unicode 类型,因此每个字符占据 4 个字节内存空间,但是在字符串中不一样,字符串是 UTF-8 编码,也就是字符串中的字符所占的字节数是变化的(1 - 4),这样有助于大幅降低字符串所占用的内存空间原创 2023-10-23 01:30:00 · 898 阅读 · 0 评论 -
rust学习——引用与借用(references-and-borrowing)
在任意给定时间,要么 只能有一个可变引用,要么 只能有多个不可变引用原创 2023-10-22 13:30:00 · 155 阅读 · 0 评论 -
rust学习——栈、堆、所有权
栈、堆、所有权的概念原创 2023-10-23 05:30:00 · 924 阅读 · 3 评论 -
rust学习—— 不一样的break
rust的break除了具有普通break功能之外,还多了两个功能,一个是返回值 ,一个是跳到指定标签。原创 2023-10-21 00:30:00 · 337 阅读 · 0 评论 -
rust学习—— 控制流if 表达式
根据条件是否为真来决定是否执行某些代码,或根据条件是否为真来重复运行一段代码,是大部分编程语言的基本组成部分。Rust 代码中最常见的用来控制执行流的结构是 if 表达式和循环。原创 2023-10-18 12:10:54 · 893 阅读 · 0 评论 -
rust学习——变量遮蔽特性(继承式可变)
变量遮蔽特性 , 声明和前面变量具有的新变量原创 2023-10-18 11:58:59 · 390 阅读 · 0 评论 -
rust学习——函数返回值
Rust 中的函数定义以fn开始,后跟着函数名和一对圆括号。大括号告诉编译器函数体在哪里开始和结束。原创 2023-10-18 11:51:16 · 672 阅读 · 0 评论