rust中的原始数据类型

2024-05-06  本文已影响0人  啥名都不好起

整数型

位长度 有符号 无符号
8-bit i8 u8
16-bit i16 u16
32-bit i32 u32
64-bit i64 u64
128-bit i128 u128
arch isize usize

isize和usize是当前操作系统处理数据的位长度大小,取决于所运行的目标平台

浮点数型

布尔型

字符(串)型

复合类型

元组

let tup: (i32, f64, char) = (500, 23.125, 'rust');
let (x, y, z) = tup;

数组

let a = [1, 2, 3, 4, 5];
// a 是一个长度为 5 的整型数组

let b = ["January", "February", "March"];
// b 是一个长度为 3 的字符串数组

let c: [i32; 5] = [1, 2, 3, 4, 5];
// c 是一个长度为 5 的 i32 数组

let d = [3; 5];
// 等同于 let d = [3, 3, 3, 3, 3];

let first = a[0];
let second = a[1];
// 数组访问

a[0] = 123; // 错误:数组 a 不可变
let mut a = [1, 2, 3];
a[0] = 4; // 正确

// 枚举实现多类型数组
enum Data {  
    Int(i32),  
    Float(f64),  
    String(String),  
    // ... 其他类型  
}  
fn main() {  
    let data_array: [Data; 3] = [Data::Int(1), Data::Float(3.14), Data::String("Hello".to_string())];  
}

// 元组实现多类型数组
fn main() {  
    let data_array: [(i32, f64, String); 3] = [  
        (1, 3.14, "One".to_string()),  
        (2, 2.71, "Two".to_string()),  
        (3, 1.61, "Three".to_string()),  
    ];  
}

// 使用结构体实现多类型数组
enum Value {  
    Int(i32),  
    Float(f64),  
    String(String),  
    // ... 其他类型  
}
struct Data {  
    value: Value
}  
  
// 然后你可以像这样使用它:  
let data_array: [Data; 3] = [  
    Data { value: Value::Int(1) },  
    Data { value: Value::Float(3.14) },  
    Data { value: Value::String("Hello".to_string()) }, 
];
上一篇 下一篇

猜你喜欢

热点阅读