u8,u8国际,u8国际官方网站,u8国际网站,u8国际网址,u8国际链接,u8体育,u8体育官网,u8体育网址,u8注册,u8体育网址,u8官方网站,u8体育APP,u8体育登录,u8体育入口Rust标准库std::collections提供了4种通用的容器类型,其中包含8种数据结构。
Rust的变量不同于其他编程语言的变量,其本质上是一种绑定语义,即将一个变量名与一个值绑定在一起。变量名和值建立关联关系。
在可以根据赋值类型或上下文信息推导出变量类型的情况下,冒号和数据类型可以省略。
let声明的变量默认是不可变的,在第一次赋值后不能通过再次赋值来改变它的值,即声明的变量是只读状态
Rust允许在同一个代码块中声明一个与之前已声明变量同名的新变量,新变量会遮蔽之前的变量,即无法再去访问前一个同名的变量,这样就实现了变量遮蔽
变量遮蔽的实质是通过let关键字声明了一个新的变量,只是名称恰巧与前一个变量名相同而已,但它们是两个完全不同的变量,处于不同的内存空间,值可以不同,值的类型也可以不同。
常量是指绑定到一个标识符且不允许改变的值,一旦定义后就没有任何方法能改变其值了
通过变量遮蔽的方式可以让不可变变量的值改变(本质上是新的变量,只是同名而已)。但是,
不存在内层或后面作用域定义的常量去遮蔽外层或前面定义的同名常量的情况。常量一旦定义后就永远不可变更和重新赋值。
常量可以在任何作用域中声明,包括全局作用域。在声明它的作用域中,常量在整个程序生命周期内都有效
常量只能被赋值为常量表达式或数学表达式,不能是函数返回值,或是其他在运行时才能确定的值。
Rust的基本数据类型有整数类型、浮点数类型、布尔类型、字符类型、范围类型等。
按照存储大小,整数类型可以进一步分为1字节、2字节、4字节、8字节、16字节
isize和usize主要作为数组或集合的索引类型使用,其长度依赖于运行程序的计算机系统。在64位计算机系统上,其长度是64位;在32位计算机系统上,其长度是32位。
如果某个变量的值超出了给定的数值范围,将会发生整型溢出。编译器将其视为一种错误。
范围类型常用来生成从一个整数开始到另一个整数结束的整数序列,有左闭右开和全闭两种形式
元组类型是由一个或多个类型的元素组合成的复合类型,使用小括号“()”把所有元素放在一起。元素之间使用逗号“,”分隔
当元组中只包含一个元素时,应该在元素后面添加逗号来区分是元素,而不是括号表达式
可以使用数组名[索引]来访问数组中相应索引位置的元素,元素的索引从0开始计数。
动态数组Vec, Vec是允许增长和缩短长度的容器类型,其提供的get方法在访问元素时可以有效避免索引越界
结构体类型是一个自定义数据类型,通过struct关键字加自定义命名,可以把多个类型组合在一起成为新的类型。
使用实例名.字段名形式更改和访问结构体实例某个字段的值。
结构体实例默认是不可变的,且不允许只将某个字段标记为可变,如果要修改结构体实例必须在实例创建时就声明其为可变的。
根据枚举值是否带有类型参数,枚举类型还可以分成无参数枚举类型和带参数枚举类型。
动态数组在内存中开辟了一段连续内存块用于存储元素,且只能存储相同类型的元素。
// 使用push方法在动态数组尾部添加新元素 v.push(1); // 使用数组名[索引] 获取元素 v[1] = 5; // 使用pop方法删除并返回动态数组的最后一个元素,如果数组为空返回None v.pop(); // remove方法删除并返回动态数组指定索引的元素,同时后面的所有元素向前移动一位 // 索引越界将导致程序错误 v.remove(1);
双端队列是一种同时具有栈(先进后出)和队列(先进先出)特征的数据结构,适用于只能在队列两端进行添加或删除元素操作的应用场景
哈希表(HashMap)是基于哈希算法来存储键-值对的集合,其中所有的键必须是同一类型,所有的值也必须是同一类型,不允许有重复的键
字符串字面量&str是字符的集合,代表的是不可变的UTF-8 编码的字符串的引用,创建后无法再追加内容或者更改内容
本质是一个字段为Vecu8 类型的结构体,把字符内容放在堆上,由指向堆上字节序列的指针(as_ptr方法)、记录堆上字节序列的长度(len方法)和堆分配容量(capacity) 3部分组成。
1.使用push方法在字符串后面追加字符,使用push_str方法在字符串后追加字符串字面量
2.使用insert方法在字符串中插入字符,使用insert_str方法在字符串中插入字符串字面量
3.使用 “+” 或者+=运算符将两个字符串连接成一个新的字符串,要求运算符的右边必须是字符串字面量
5.replace 和 replacen() 方法将字符串中指定的子串替换为另一个字符串。
replace 接收两个参数,第1个参数为要被替换的子串,第2个参数为新的字符串,会替换所有匹配的子串。
replacen 方法除了上述两个参数外,还接受第3个参数来指定替换的个数
删除并返回字符串的最后一个字符,返回类型为Optionchar, 如果字符串为空,返回None
remove方法是按字节处理字符串的,如果给定的索引位置不是合法的字符边界,将会导致程序错误。
truncate 也是按照字节处理字符串,如果给定的索引位置不是合法的字符边界,会导致程序错误。
UTF-8 中字母1字节,特殊字符2字节,汉字3字节,不同字符的长度是不一样的。
单元类型,单元类型的值叫做单元值,以()表示,一个函数无返回值,实际上是以单元值作为函数的返回值了。
到此这篇关于Rust变量与数据类型的文章就介绍到这了,更多相关Rust变量与数据类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!