Rust
Rust 中的 安全 联合类型,需要使用 enum 来进行构造,枚举出所有的可能类型并进行标签,枚举类型集合 可以被作为一个 单类型;
所以像 vec 这样只能容放 单类型的结构可以使用枚举类型来实现。
然后要使用真实值时也需要采用模式匹配,来解构提取真实值;
虽然表现出来是麻烦的,但是保证了内存不浪费与安全;
且强制让程序做了穷尽(exhaustive)处理,也就是处理了所有的可能性。
fn vec_enum_test() {
#[derive(Debug)]
enum SpreadsheetCell {
Int(i32),
Float(f64),
Text(String),
}
let row = vec![
SpreadsheetCell::Int(3),
SpreadsheetCell::Text(String::from("blue")),
SpreadsheetCell::Float(10.12),
];
for i in &row {
match i {
SpreadsheetCell::Int(n) => println!("{:?}", n),
SpreadsheetCell::Text(s) => println!("{:?}", s),
SpreadsheetCell::Float(f) => println!("{:?}", f),
}
}
}
类型安全除了非空,还有是否进行了穷举。