Rust学习——基础概念
变量:
- let 、let mut
- const
数据类型:
- 标量类型(scalar types)
- 整型
- 有符号 和 无符号 代表数字能否为负值
- 有符号:-(2^(n-1)) ~ 2^(n-1) - 1
- 无符号:0 ~ 2^n - 1
- 长度类型为 arch 表示根据当前计算机架构位数,64位就是64位,32位就是32位
- 声明整型默认类型是 i32
- 浮点
- 声明浮点数默认类型是 f64(因为精度比f32高)
- 采用IEEE-754 标准表示
- 布尔
- bool
- 字符
- 用char声明,使用单引号,字符串使用双引号
- char类型大小为4个字节 4 * 8 = 32位
- 整型
- 复合类型(compound types)
- 元祖(tuple)
- 将多个不同类型值组合进一个复合类型的方式
2.元祖长度是固定的,不可变 - 元祖可以解构
- 支持用 .index 的方式访问值
- 如果表达式不返回任何值,则会隐式返回单元值,即没有任何值得元祖:()
- 将多个不同类型值组合进一个复合类型的方式
- 数组
- 数组中的每个元素类型必须相同
- rust中数组长度是固定的,不可变
- let a = [3; 2] === let a = [3, 3]
- let a: [i32; 5] = [1,2,3,4,5]
- 数组越界rust会panic,直接告诉你,安全保障
函数
- 函数变量命名遵循 snake case风格,所有字母都是小写并用下划线分割单词。
- 函数参数
- 必须声明每个参数类型
- 包含语句和表达式的函数体
- rust是一门基于表达式的语言
- 语句不返回值
- 表达式可以是语句的一部分
- {},也是一个表达式,可以用来运算
- 如果在表达式结尾加上分号,就变成了语句,语句不会返回值,所以要视情况而定
- 具有返回值的函数
- -> 声明函数返回值类型
注释
rust 中的注释有两种:
- -> 声明函数返回值类型
- // 双斜杠注释
- doc 注释
控制流 - if不用写括号包裹条件(arms)
- 条件必须是bool值,无隐式转换
- if可以在let中使用..
- 每个分支表达式返回值必须都是相同类型
- 循环有三种:loop、while、for
- loop
- 使用break停止循环
- 使用continue跳出本次循环
- 若存在嵌套循环,break、continue应用于就近的内层循环
- 可以选择在循环上指定“循环标签”,即给循环命名,这样可以使用break、continune显示操作循环迭代,如 break 'xxxx_loop';
- 循环可以返回值,通过在break表达式后加入表达式,如 break count * 2;
- while
- for
- 在数组越界这种场景时,可以考虑用for替代while
- 通过 for ele in list.iter() {} 迭代list
- 通过 for num in (1..4).rev() {} 反转输出4321
- loop
- 元祖(tuple)