安装

参照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
    • 浮点类型
      • 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