Rust学习——基础概念

变量:

  1. let 、let mut
  2. const

数据类型:

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