自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

原创 新工具 !一键无限重置 Jetbrain 2023 最新版系列

今天逛github,看到了一个新的 Jetbrains 系列软件的无限 30 天试用的方法,体验了下,感觉还不错,使用方法很简单。我看介绍软件还处于测试阶段,大家感兴趣的可以试试看。

2023-09-18 23:18:12 1101 2

原创 【重磅+测评】Jetbrain发布Rust IDE,免费使用一年

RustRover 还处在早期阶段,我们需要给 Jetbrain 一些时间,可能目前的优点是免费吧。总的来说,这对于 Rust 开发者是好的事情,毕竟并不是所有的语言都拥有自己的专属 IDE,有些语言一直活在插件里。在此我也希望,Jetbrain 推出 IDE 后,能再次将 Rust 推上一个新的高度。

2023-09-13 23:32:50 2592

原创 Rust 中级教程 第5课——trait(3)

看到这里,我想大家应该对 trait都有了初步的了解了。本篇文章将向大家介绍下在 Rust 标准库中常用和常见的一些 trait。

2022-09-18 13:46:27 1399 2

原创 【Rust 中级教程】 04 trait (2)

今天是中秋节,是除了春节外最重大的节日,在这里我先祝大家中秋节快乐。话不多说,本篇文章继续来介绍 trait。

2022-09-10 12:47:37 720

原创 Rust番外——0.1+0.2为什么不等于0.3 (上篇)

学习更多Rust内容,请关注微信公众号:Rust学习日记0x00 开篇0.1 + 0.2 = 0.3这个等式,在数学里是没有任何问题的。但是为什么我们使用Rust求解时得到的结果却不是0.3呢?这篇文章,我们就深刻的剖析一下。0x01 先看结果首先,我们先用代码看下使用Rust计算0.1 + 0.2 的结果,如下图:其结果是0.30000000000000004。那这是什么原因呢?其实这与计算机是如何保存数据有关系。0x02 进制与转换要寻求原因,这里有几个概念要先了解下。进制我们在生活

2022-01-29 16:30:21 1160

原创 Apk Installer —— 一款Windows下自动关联APK文件且双击APK安装到任意安卓设备上的工具

Apk Installer介绍Apk Installer(原名:WSAInstallTool,自1.2.3.0版本后更名)是一款Windows下自动关联APK文件且双击APK安装到任意安卓设备上的工具。该软件可以显示Apk自身的图标,详细的权限列表等。支持Windows 11 安卓子系统,支持Windows 7、Windows 10 、Windows 11安装软件至任意安卓设备上。如软件无法运行,请安装.Net Framework 4.5.2。该软件主要服务于Windows 11 的Android子系

2021-12-26 14:26:55 6173 1

原创 Rust交叉编译——Windows To Linux

0x00 开篇什么是交叉编译?可能有的同学不理解。我这里简单介绍下,所谓交叉编译,就是在一个平台上可以编译生成另一个平台的可执行文件。这节课主要介绍如何在Windows系统上编译生成Linux系统的可执行文件。0x01 准备工作我们跨平台编译,要准备如下一些前期工作。操作环境Windows 11VS2012(VS2019我也测试过)CLionRust 1.56.1CentOS 7添加Target这里我所用的Linux是64位的,所以我这里需要添加x86_64-unknown-lin

2021-12-15 16:49:09 3036 1

原创 Rust实战——注册表之自定义Windows11任务栏位置(下)

0x00 写在前面的话上节课了解了使用Rust才操作注册表的一些常用方法,这节课我们就用这些方法来实现“Windows11自定义任务栏位置”这个小工具。0x01 &str转LPCWSTR上节介绍的方法中,所有参数都存在的一个LPCWSTR类型的参数。我们看源码可知,LPWSTR类型其实就是WCHAR类型的指针。WCHAR又是wchar_t类型,再继续看发现wchar_t原来就是一个无符号16位整数了。(下面内容截取自源码)pub type LPCWSTR = *const WCHAR;pu

2021-11-04 10:44:08 644

原创 Rust实战——注册表之自定义Windows11任务栏位置(上)

0x00 说在前面的废话2021年10月5日这一天注定是不寻常的一天…因为“巨硬”发布了Windows 11。本人在第一时间装了Windows 11。体验还算不错,下面是windows 11的开始菜单啦。感觉又要适应一段时间了。但是发现了一个问题,这货!任务栏不能改!位!置!这难不倒我吧,,上网查资料发现可以通过修改注册表来更改任务栏的位置。看到这里,要不咱们就用Rust来大干一场,正好练习下Rust的winapi。后来…就有了这篇文章。本文也正好借此机会说下Rust使用winapi的一些坑。如果您是一

2021-10-13 13:20:00 1060

原创 Rust语言编程实例100题-078

Rust语言编程实例100题-078题目:Rust迭代器专项练习。迭代器模式是将遍历数据集合的行为抽象为单独的迭代对象,这样在遍历集合时可以把集合中所有元素按顺序传递给处理逻辑。要求:使用迭代器中filter适配器,获取1-100这100个数中能被7整除或者能被9整除的数并输出。**程序分析:**无。知识点:Rust迭代器参考程序代码:fn main() { let num: Vec<i32> = (1..=100).collect(); let result: Ve

2021-09-16 18:37:53 245

原创 Rust语言编程实例100题-077

Rust语言编程实例100题-077题目:Rust迭代器专项练习。迭代器模式是将遍历数据集合的行为抽象为单独的迭代对象,这样在遍历集合时可以把集合中所有元素按顺序传递给处理逻辑。要求:使用迭代器中take适配器,获取数组[1,5,7,9,11,23,24]的前5个元素并输出。**程序分析:**无。知识点:Rust迭代器参考程序代码:fn main() { let num: Vec<i32> = vec![1, 5, 7, 9, 11, 23, 24]; let res

2021-09-15 13:02:15 192

原创 Rust语言编程实例100题-076

Rust语言编程实例100题-076题目:Rust迭代器专项练习。迭代器模式是将遍历数据集合的行为抽象为单独的迭代对象,这样在遍历集合时可以把集合中所有元素按顺序传递给处理逻辑。要求:使用迭代器中的collect消费器和map适配器,将数组[1,5,7,9,11,23,24]每个数字乘以3 后输出。**程序分析:**无。知识点:Rust迭代器参考程序代码:fn main() { let num: Vec<i32> = vec![1, 5, 7, 9, 11, 23, 24];

2021-09-14 22:29:57 230

原创 Rust语言编程实例100题-075

Rust语言编程实例100题-075题目:Rust迭代器专项练习。迭代器模式是将遍历数据集合的行为抽象为单独的迭代对象,这样在遍历集合时可以把集合中所有元素按顺序传递给处理逻辑。要求:使用迭代器中的any消费器,求数组[1,5,7,9,11,23,24]个数中,是否存在偶数。**程序分析:**无。知识点:Rust迭代器参考程序代码:fn main() { let num: Vec<i32> = vec![1, 5, 7, 9, 11, 23, 24]; let res

2021-09-13 12:40:32 301

原创 Rust语言编程实例100题-074

Rust语言编程实例100题-074题目:Rust迭代器专项练习。迭代器模式是将遍历数据集合的行为抽象为单独的迭代对象,这样在遍历集合时可以把集合中所有元素按顺序传递给处理逻辑。要求:使用迭代器中的sum消费器,求1-100的和。**程序分析:**无。知识点:Rust迭代器参考程序代码:fn main() { let num: Vec<i32> = (1..=100).collect(); let sum: i32 = num.iter().sum(); db

2021-09-12 14:00:07 214

原创 RUST 学习日记 第21课 ——迭代器(Iterator)

RUST 学习日记 第21课 ——迭代器(Iterator)0x00 回顾与开篇关于函数的学习暂时告一段落了,这节课来学习迭代器。前面在讲解for循环的时候,我们当时是通过索引去遍历每个元素,如果在遍历过程中不需要使用索引位置,推荐使用迭代器来遍历数据集合。0x01 迭代器的定义迭代器模式是将遍历数据集合的行为抽象为单独的迭代对象,在遍历集合时把集合中所有元素按顺序传递给处理逻辑。Iterator是一个trait。trait Iterator {​ type Item;​ fn nex

2021-09-11 14:20:03 775

原创 Rust语言编程实例100题-073

Rust语言编程实例100题-073题目:Rust变量冻结。当数据被相同的名称不变地绑定时,它还会冻结(freeze)。在不可变绑定超出作用域之前,无法修改已冻结的数据。变量冻结应该算作Rust的特性了。编写程序练习Rust的变量冻结**程序分析:**作用域外和作用域内定义同名变量,运行看结果。知识点:变量冻结参考程序代码:fn main() { let mut mut_int = 3; { let mut_int = 5; // 下面代码如果不注释

2021-09-10 20:59:31 233

原创 Rust语言编程实例100题-072

Rust语言编程实例100题-072题目:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。创建一个简单的可以存储i32元素的链表,只实现push功能即可。**程序分析:**可以使用结构体来实现链表。知识点:struct参考程序代码:#[derive(Debug)]struct Li

2021-09-09 12:49:43 292

原创 Rust学习日记番外篇——代码写诗

Rust学习日记番外篇——代码写诗中秋节即将来临啦~~提前祝大家月饼节快乐。今天看到了掘金的文章,有个代码写诗的活动,那我就小露一手了。0x01 选定诗句在掘金有下面几句诗可选。举头望明月,低头思故乡。万里无云镜九州,最团圆夜是中秋。明月几时有?把酒问青天。但愿人长久,千里共婵娟。我昨既赋白兔诗,笑他常娥诚自痴。今夜月明人尽望,不知秋思落谁家。举杯邀明月,对影成三人。忆对中秋丹桂丛。花在杯中。月在杯中。好时节,愿得年年,常见中秋月。一年逢好夜,万里见明时。嫦娥应悔偷灵药, 碧海

2021-09-08 13:58:47 368

原创 Rust语言编程实例100题-071

Rust语言编程实例100题-071题目:循环输入练习。从控制台读取3个名字,最后控制台输出三个名字。**程序分析:**循环读入数据问题。通过for循环每次读入一个名字,然后将其添加至向量中。待循环结束后,输出向量中的值。注意每次读取新的输入的之后,需要清空input数据,防止数据重复。知识点:循环 输入参考程序代码:fn main() { let mut input = String::new(); let mut names: Vec<String> = Vec::

2021-09-07 13:11:19 209

原创 Rust语言编程实例100题-070

Rust语言编程实例100题-070题目:输出下面字符串的字符长度和字节长度。字符串:hello我喜欢Rust!????**程序分析:**这道题确实很简单,此题仅仅是为了让大家理解在Rust中字符长度和字节长度的区别。通常使用len()方法输出的是字符串的字节长度,chars().count()方法输出的是字符串的字符长度。知识点:字符长度和字节长度参考程序代码:fn main() { let s = "hello我喜欢Rust!????"; println!("字符长度为:

2021-09-06 07:51:20 167

原创 Rust语言编程实例100题-069

Rust语言编程实例100题-069题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。简化要求:以8个人为准,计算剩下的最后一个序号是几?**程序分析:**可以考虑使用迭代器和过滤器计算。如果数组的列表不为1就一直循环,计数将序号是3的数字过滤掉。知识点:迭代器、过滤器参考程序代码:fn main() { const N: i32 = 8; let mut a: Vec<i32> = (1..=

2021-09-05 14:39:33 179

原创 RUST 学习日记 第20课 ——闭包

RUST 学习日记 第20课 ——闭包0x00 回顾与开篇我们已经通过两节课介绍了Rust的函数使用方法,尤其是要学会使用Rust的高阶函数,它在后续的项目编写中会变得很常用。这节课学习函数的另一种表现形式——闭包(Closure),有些人也被称其为匿名函数,但不准确。0x01 闭包的定义闭包(Closure)通常是指词法闭包,是一个持有外部环境变量的函数。外部环境是指闭包定义时所在的词法作用域。外部环境变量,在函数式编程范式中也被称为自由变量,是指并不是在闭包内定义的变量。将自由变量和自身绑

2021-09-04 11:35:23 223

原创 Rust语言编程实例100题-068

Rust语言编程实例100题-068题目:有 n个整数,使其前面各数顺序向后移 m 个位置,最后m个数变成最前面的 m 个数。现将要求简化一点,给定一个数组,请按上面的要求移动4个位置,然后打印移动后的数组。数组如下:[5, 6, 7, 8, 9, 0, 1, 2, 3, 4]**程序分析:**可以先记录最后一个数据,然后所有元素依次向后移动一个位置,移动offset次即可。知识点:循环参考程序代码:fn main() { let mut a = [5, 6, 7, 8, 9, 0,

2021-09-03 13:49:11 95

原创 Rust语言编程实例100题-067

Rust语言编程实例100题-067题目:给定一个数组,将数组内的最大的元素与第一个元素交换,数组内的最小的元素与最后一个元素交换,最后输出这个数组。数组如下:[12, 123, 4, 65, 21]**程序分析:**声明两个变量分别是最小元素位置和最大元素位置。通过循环比较,获取最大元素和最小元素的位置。最后分别交换他们的位置。知识点:循环、数组参考程序代码:fn main() { let mut array = [12, 123, 4, 65, 21]; let mut

2021-09-02 13:28:06 156

原创 Rust语言编程实例100题-066

Rust语言编程实例100题-066题目:Rust指针练习。先来理解下引用和借用的概念。引用是作为参数传递给函数的地址。借用就像我们借一些东西,如果已经完成借用,需要还给原所有者。 引用和借用是相互的,即当引用被释放时,借用也结束。**程序分析:**使用引用来交换两个数的值。知识点:指针参考程序代码:fn main() { let mut a = 5; let mut b = 6; swap(&mut a, &mut b); dbg!(a);

2021-09-01 07:40:11 131

原创 Rust语言编程实例100题-065

Rust语言编程实例100题-065题目:泛型练习。泛型并不是Rust特有的概率,在很多强类型的编程语言中也支持范围。泛型允许开发者编写一些在使用时才指定类型的代码。泛型,顾名思义就是泛指的类型,在日常编程中会写一些函数,并可能将其应用在很多类型中,如果为每个类型都实现一遍,那么工作量会成倍增加。泛型则是为了解决这个问题。**程序分析:**无知识点:泛型参考程序代码:fn main() { let a = test65_tem(1, 2); dbg!(a); let b =

2021-08-31 07:00:55 172

原创 Rust语言编程实例100题-064

Rust语言编程实例100题-064题目:Rust中使用as操作符来转换基本数类型。需要注意的是as关键字不支持重载。短类型转换为长类型是没有问题,反之,则会发生截断处理。要求:练习Rust中as操作符的使用。使用as操作符将i32类型转换为f64类型。然后再将f64类型转换为i32类型。数据变量可以自己定义。**程序分析:**无知识点:as操作符参考程序代码:fn main() { let a :i32 = 8; let b = a as f64; let c = 1.

2021-08-30 13:30:34 207

原创 Rust数据结构——排序算法(一)

Rust数据结构——排序算法(一)0x01 常见的排序算法排序算法是数据结构中很常见的算法。如果你了解过数据结构,那么对“常见的排序算法有哪些?”这个问题的回答都懒得答了。那么我还是来列举下吧。选择排序插入排序希尔排序冒泡排序快速排序基数排序堆排序归并排序等排序算法实在是太多了,今天我们用Rust来实现几种比较简单的排序算法。0x02 选择排序选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是

2021-08-29 13:14:43 849

原创 RUST 学习日记 第19课 ——函数(二)

RUST 学习日记 第19课 ——函数(二)0x00 回顾与开篇上节初步了解了Rust的函数,这节课继续介绍Rust的高阶函数——函数作为参数和函数作为返回值的两种形式。0x01 type定义别名在Rust中,我们可以使用type关键字来为Rust的原始类型或者自定义类型定义别名。示例代码如下: type Int = i32; type Float = f32; type Double = f64; type Char = char; let a: Int

2021-08-28 17:01:24 470

原创 Rust语言编程实例100题-063

Rust语言编程实例100题-063**题目:**Rust 支持元组 tuple。而且元组是一个 复合类型 。复合类型 可以存储多个不同类型的数据。复合类型就像我们的菜篮子,里面可以放各种类型的菜。元组有着固定的长度。而且一旦定义,就不能再增长或缩小。元组的下标从 0 开始。Rust 中元组的定义很简单,就是使用一对小括号 () 把所有元素放在一起,元素之间使用逗号 , 分隔。要求:练习Rust中的元组。**程序分析:**无知识点:元组参考程序代码:fn main() { let tup

2021-08-27 13:01:07 93

原创 Rust语言编程实例100题-062

Rust语言编程实例100题-062**题目:**在Rust中,有一种类型叫做Slice,中文译为切片。一个切片(slice)就是指向一段 内存 的指针。因此 切片 可用于访问内存块中 连续区间内的数据。一般情况下,能够在内存中连续区间存储数据的 数据结构 有: 数组 array、向量 vector、字符串 string。也就是说,切片 可以和数组、向量、字符串一起使用,它使用 数字索引 (类似于数组的下标索引)来访问它所指向的数据。要求:练习Rust中的切片(Slice)。**程序分析:**无知识

2021-08-26 13:20:30 177

原创 Rust语言编程实例100题-061

Rust语言编程实例100题-061**题目:**杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国数学史上的一个伟大成就。要求:打印出杨辉三角形(要求打印出10行)。程序分析:结构如下所示:11 11 2 11 3 3 11 4

2021-08-25 07:32:17 194

原创 Rust语言编程实例100题-060

<h1 id="rust语言编程实例100题-060">Rust语言编程实例100题-060</h1><p><strong>题目:</strong>Rust高阶函数练习。高阶函数是指以函数为参数或者

2021-08-24 13:06:17 168

原创 Rust语言编程实例100题-059

<h1 id="rust语言编程实例100题-059">Rust语言编程实例100题-059</h1><p><strong>题目:</strong>Rust高阶函数练习。高阶函数是指以函数为参数或者

2021-08-23 12:47:41 125

原创 Rust语言编程实例100题-058

<h1 id="rust语言编程实例100题-058">Rust语言编程实例100题-058</h1><p><strong>题目:</strong>LeetCode 练习 1646. 获取生成数组中

2021-08-22 08:52:09 96

原创 RUST 学习日记 第18课 ——函数

<h3 id="rust--学习日记-第18课-函数(一)">RUST 学习日记 第18课 ——函数(一)</h3><hr><p><img src="https://gitee.com/haoy

2021-08-21 14:46:18 235

原创 Rust语言编程实例100题-057

<h1 id="rust语言编程实例100题-057">Rust语言编程实例100题-057</h1><p><strong>题目:</strong>LeetCode 练习 338. 比特位计数</p

2021-08-20 20:16:37 91

原创 Rust语言编程实例100题-056

<h1 id="rust语言编程实例100题-056">Rust语言编程实例100题-056</h1><p><strong>题目:</strong>LeetCode 练习 1137. 第 N 个泰波

2021-08-19 13:03:52 202

原创 Rust语言编程实例100题-055

<h1 id="rust语言编程实例100题-055">Rust语言编程实例100题-055</h1><p><strong>题目:</strong>前面对与或运算符有了一定的简单练习。此题是一个混合

2021-08-18 12:45:25 422

原创 Rust语言编程实例100题-054

<h1 id="rust语言编程实例100题-054">Rust语言编程实例100题-054</h1><p><strong>题目:</strong>学习使用按位取反!。</p><p>普及点计算机知

2021-08-17 12:53:46 247

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除