安装
参照rust中文文档、rust官网、及视频10分钟内完成:Rust的安装与配置。推荐进行国内源的换置。
学习
数据类型
compiler一般能推断出类型。但是由于某些方法调用返回类型不能具体,所以就必须添加类型的标注,否则会编译出错。
标量类型
- 一个标量类型代表一个单个的值
- rust有四个主要的标量类型
- 整数类型
- 没有小数部分
- 无符号整数u开头,有符号正数i揩油
- rust整数类型列表 i8、u8、i16、u16 、i32(默认类型)、u32、i64、u64、i128、u128、(arch由程序运行的计算机架构所决定): issize、usize
- 有符号范围 -(2 ^ n - 1) ~ 2 ^ (n - 1) -1
- 无符号范围 0 ~ 2 ^ n - 1
- isize、usize主要场景是对某种集合进行索引操作
- 整数字面值
- Decimal(十进制)、Hex(十六进制)、Octal(八进制)、Binary(二进制)、Btye(u8 only)
- 整数溢出
- u8范围0 ~ 255。
- 调试模式下是变异:rust会检查整数溢出,如果溢出程序运行是就会panic
- 发布模式下(–realease)编译:rust不会检查可能导致panic的整数溢出
- 如果发生溢出:rust会执行“环绕操作”
- 但是程序不会panic
- u8范围0 ~ 255。
- 浮点类型
- f32
- f64 默认类型
- 布尔类型
- true / false 一个字节大小
- 字符类型
- char 用来描述语言中最基础的单个字符
- 使用单引号
- 占用4字节大小
- unicode标量值,可以表示比ASCII多得多的字符内容
- 整数类型
复合类型
元组
- 可以将多个类型的多个值放在一个类型中
- 长度固定:一旦声明就无法改变
创建tuple,小括号里将值用逗号分开。Tuple中的每一个位置都对应一个类型,Tuple中各元素的类型不必相同。 let tup = (500,64.4,’ch’);
获取tuple元素值,可以使用模式匹配来结构一个tuple来获取元素的值 let (x,y,z) = tup;
访问tuple元素,在tuple变量使用标记法,后面接元素的索引号 println!(“{},{},{},”,tup.0,tup.1,tup.2);
数组
- 数组也可以将多个值放在一个类型里
- 每个元素的类型必须相同
- 数组的长度也是固定的
声明数组,在中括号里,各值用逗号分开
数组用处:数据存放在stack中而不是heap中,或者想要保证有固定数量的元素,这时使用数组更有好处。
数组没有vector灵活。vector和数组类似,由标准库提供。vector长度可以改变。
数组类型:表示方法:[类型;长度] let a[i32;3] = [555,555,555]
另外一种声明数组方法
如果数组中的每个元素值都相同,那么可以:在中括号中指定初始值,然后;,最后是数组的长度。[初始值;长度] let a = [3;5] 即 let a = [3,3,3,3,3]
访问数组元素,是在stack上分配的单个内存,可以使用索引来访问数组的元素。
如果访问索引超出了数组的范围。编译会通过(不是绝对),但是运行会报错。runtime会panic