rust 数据类型和声明 -3

一,总览

二,数据类型的内存分配

       Rust 与堆分配相比倾向于栈分配,Vec<T>类型在堆上为 vector 的元素分配了空 。默认是栈分配,与开销有关。

三,声明实例

       初始化绑定 : Rust 变量绑定有另一个不同于其它语言的方面:绑定要求在可以使用它之前必须初始化。Rust 是不会让我们使用一个没有经过初始化的值的。

(一)基础类型

fn main() {

    //n位二进制数能够表示的无符号整数范围即0-2的n次方-1
    //n位二进制数能够表示的有符号整数范围即负2的n次方到2的n-1次方-1
    let num_i8_1:i8 = -128;//8位有符号的二进制数表示为0000000-1111111,即十进制的`-128..=127`共256个数
    let num_i8_2:i8 = 127;
    let num_u8_1:u8 = 255;//8位无符号的二进制数表示为00000000-11111111,即十进制的0-255共256个数

    let num_i16_1:i16 = -32768;
    let num_i16_2:i16 = 32767;
    let num_u16_1:u16 = 65535;

    let num_i32_1 = -2147483648;//-2147483648..=2147483647
    let num_i32_2 = 2147483647;
    let num_u32_1:u32 = 4294967295;//0..=4294967295

    let num_i128_1:i128= -1;
    let num_i128_2:i128 = 1;
    let num_u128_1:u128 = 170141183460469231731687303715884105728;//0..=170141183460469231731687303715884105728 理论上,实际比这个大待持续...

    let num_isize_1:isize = -1;
    let num_isize_2:isize = 1;
    let num_usize_2:usize = 1;//19位 具体极限值待持续... error: integer literal is too large

    let num_f32:f32 = 6.6;
    let num_f64 = 3.14;

    let bool_a = true;
    let bool_b : bool= false;

    let char1 = 'a';
    let char2:char = '1';
    //Rust 的 char 类型代表了一个 Unicode 标量值,这意味着它可以比 ASCII 表示更多内容。
    let char3 = '中';//表示一个中文,这个rust的char类型特殊的地方

    let string1 = "a";
    let string2:&str = "b";
}

(二)基础类型

    let mut x = 5;
    let y = (x/2) as f64;  // 类型转换
    let hundred = 100_f64; // 声明
    // 使用 parse 将 String 转换为数字时,必须处理异常
    let z: u32 = "12".parse().unwrap();

猜你喜欢

转载自blog.csdn.net/qq_39308071/article/details/112665235