Rust 编程语言-3-通用编程概念

3. 通用的编程概念

3.1变量和可变性

  • 变量默认都是immutable
  • mut关键字使得变量可变,但是带来了额外的复制开销,考虑Struct的数据比较大的情况
  • shadow变量,对同一个名字的变量可以shadow,改变它的类型(建议还是别这么干)
let spaces = "   ";
let spaces = spaces.len();
  • 常量 const
const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3;

3.2 数据类型

数字变量的转换,不可以强制类型转换
整数的类型:i8, i16, i32, i64, i128, isize
无符号整数类型:u8, u16, ...., usize
整数默认类型是 i32


截屏2022-01-06 下午9.16.33.png
let guess: u32 = "42".parse().expect("Not a number!");

整数溢出:debug模式下会panic,release模式下会截断

浮点数

  • 默认类型是f64(为啥不是f32,因为现代cpu上执行效率差不多,但却提供更高精度)

你知道加减乘除的英文怎么表达吗,看代码

fn main() {
    // addition
    let sum = 5 + 10;

    // subtraction
    let difference = 95.5 - 4.3;

    // multiplication
    let product = 4 * 30;

    // division
    let quotient = 56.7 / 32.2;
    let floored = 2 / 3; // Results in 0

    // remainder
    let remainder = 43 % 5;
}

char类型:4个字节,可以表示表情

fn main() {
    let c = 'z';
    let z = 'ℤ';
    let heart_eyed_cat = '😻';
}

复合类型 tuple

let tup: (i32, f64, u8) = (500, 6.4, 1);

Array类型

let a = [1, 2, 3, 4, 5];
let a: [i32; 5] = [1, 2, 3, 4, 5];
let a = [3; 5];

数组类型与tuple类型相比,它的所有元素类型必须相同

3.3 函数

snake case (下划线相连接)

fn another_function() {
    println!("Another function.");
}

3.4 注释

多种注释的方式

  • //
  • /* */

3.5 控制流

  • if else
  • loop
  • while
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容