- 博客(15)
- 资源 (3)
- 收藏
- 关注
原创 rust - len 和capacity 区别
前言 len 和capacity 都是获取字符对象长度,那么两者有什么本质区别呢?废话不说,上代码测试。代码测试fn len_f(){ let mut story = String::new(); let mut len = story.len(); let mut capacity = story.capacity(); println!("{},{}", capacity , len ); for _ in 0..5 { ...
2021-01-27 11:13:52 546
原创 rust 字符串的操作 -11
一,前言 不管在什么语言中,对字符串的处理都是必须且重要的,rust中的字符串数据类型关键字是String。(一)Rust将字符串分类 Rust将字符串分为两种: 1) &str :固定长度字符串(也称字符串字面量) 2) String ...
2021-01-27 10:39:23 4812
原创 rust 函数 和 闭包 -10
一,函数的声明格式 &mut 修饰符在变量名前,函数定义时形式参数必须声明类型,这是出于安全的考虑,这样就不需要再进行推断了。 fn fn_name( [&mut]变量名 : 变量类型 [,...]) -> 返回类型{ // code_block return 返回参数; [返回参数] //两种不同的返回方式 }二,用函数实现两数交换值fn main() { let mut num1 = 1; let ...
2021-01-26 14:01:48 498
原创 rust 所有权 -9
所有权规则首先,让我们看一下所有权规则。在通过示例进行说明时,请牢记以下规则:Rust中的每个值都有一个变量,称为其所有者。 一次只能有一个所有者。 当所有者超出范围时,该值将被删除。大概思路就是两个水杯A,B和一杯水,A中的水倒入B,水的所有权就是B,A失去了水的所有权,这时你想从A杯里喝水,显然是不可能的了。如果这个场景结束了呢(方法执行结束)按照以往语言的经验,例如JAVA/py/go,被GC清理,C/C++需要编程人员手动处理而Rust不用手动处理和GC清理,编译器处.
2021-01-25 22:20:43 144
原创 rust 力扣 - 两数之和 - 数组实现 -8
fn main() { sum_two_num();}fn sum_two_num(){ let nums = [2,7,11,7,2,7,2]; let target = 9; let mut n0= 0;//数组读取位置 let mut n1= 0;//外层便利数 let mut n2= 0;//内层便利数 for num1 in nums.iter() { if n1 >= n0{ ...
2021-01-25 19:57:01 273 2
原创 rust 条件语句和循环的用法 -7
fn main() { ///三种条件语句的用法 //1.第一种用法 if else let flag = true; if flag { println!("true"); } else { println!("false") } //2.第二种用法 if else if else let num = 3; if num==1 { println!("1"); ..
2021-01-25 15:33:43 836
原创 rust 数组 -6
数组声明,操作,设置获取数组长度fn main() { //1.直接声明数组 let array_a = [1];//不推荐这种,没有显式声明类型(类型会根据第一个值的默认类型确定),一旦超过类型长度或有多个类型会在编译期报错 let array_a = [()]; let array_a = ['a']; let array_a = ["b"]; let array_a = [[1],[2]];//多维数组类型也是按第一个算,类型变为了[i32].
2021-01-21 15:01:19 337
原创 rust 元组 -5
一,元组定义:类型可不同:元组是几个值的集合,用小括号把几个值包起来,可以是不同类型的(特殊情况下可变)。长度不可变: 元组有着固定的长度。而且一旦定义,就不能再增长或缩小。下标:元组的下标从 0 开始。声明一个元组 let tuple_name = (value1,value2,...);二,创建元组 let tuple_a = (1,true,3.14);//定义元组时也可以忽略数据类型 let tuple_a: (i32,bool,f64) = (3,...
2021-01-20 14:53:16 398
原创 rust 重影(Shadowing) -4
是指变量的名称可以被重新使用的机制:对照另一句理解:如果要声明变量,需要使用 let 关键字。let圈的事,跟常量const没关系,人家也不支持。可能是设计时出于安全考虑不想让程序员使用很多不同类型的变量名,造成程序的混乱和复杂,它允许你在语法上声明使用新变量的同时把原来的变量给干掉 。这意味着在rust的同公司内不会出现两个叫小明的人,后来的会把之前的干掉fn main() { let c = 1; println!("c={}",c); let mu
2021-01-20 11:33:22 672
原创 rust 数据类型和声明 -3
一,总览二,声明实例(一)基础类型fn main() { //n位二进制数能够表示的无符号整数范围即0-2的n次方-1 //n位二进制数能够表示的有符号整数范围即负2的n次方到2的n-1次方-1 let num_i8_1:i8 = -128;//8位有符号的二进制数表示为0000000-1111111,即十进制的`-128..=127`共256个数 let num_i8_2:i8 = 127; let num_u8_1:u8...
2021-01-15 14:19:38 339
原创 cannot apply unary operator `-` to type `u8`
cannot apply unary operator `-` to type `u8`error[E0600]: cannot apply unary operator `-` to type `u8` --> src\main.rs:17:19 |17 | let u8_1:u8 = -1; | ^^ | | | cannot apply una...
2021-01-14 11:38:58 688
原创 java通过freemarker生成word文档
用word模板,将其另存为xml格式,模板的文件名最好是英文,可以设置生成的文件名成。然后将xml文件的后缀名修改为ftl格式,就变成了freemarker的标准格式(xml格式的其实也可以)。比较繁琐的就对格式的搜索,动则几万行费眼,博主曾半个月对一个word模板修改十多次,心累,最好确定好最终的模板格式,记录下我的word生成工具和调用,freemarker语法这里就不说了,过程就是搬砖的过程,跟jsp页面其实没太大区别。之前的项目比较老,有时间在调整一份springboot的版本吧调用 .
2021-01-13 10:45:56 266 1
原创 rust 注释和命名规范 -2
一,注释单行注释是二个反斜杠//多行文档注释是三个反斜杠/// ,可以用cargo doc来生成html说明文档。/// test方法fn test() { let num = 1; //不可改变变量}二,命名规范 rust中变量标识符和函数标识符官方要求就是小写加下划线拼接的方式,常量尽量遵循全大写加下划线拼接的方式。 //格式为 变量声明 变量名: 数据类型 = 不可变变量的值;const NUM:i32= 1;//常量const TT:f...
2021-01-13 07:51:44 1936
原创 error: linker `link.exe` not found
error: linker `link.exe` not found | = note: 系统找不到指定的文件。 (os error 2)note: the msvc targets depend on the msvc linker but `link.exe` was not foundnote: please ensure that VS 2013, VS 2015, VS 2017 or VS 2019 was installed with the Visual C++ op...
2021-01-08 16:47:30 4179
原创 rust 简介 -1
锈why rust?性能 :Rust非常快且内存效率高:没有运行时或垃圾收集器,它可以为关键性能服务提供支持,可以在嵌入式设备上运行,并且可以轻松地与其他语言集成。可靠性:Rust的丰富类型系统和所有权模型保证了内存安全性和线程安全性,使您能够在编译时消除许多类的错误。生产效率:Rust拥有出色的文档,友好的编译器以及有用的错误消息,以及一流的工具—集成的软件包管理器和构建工具,具有自动完成和类型检查的智能多编辑器支持,自动格式化程序等。官网 :https://www.rus..
2021-01-04 19:54:06 376
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人