Rust

Rust 中的 安全 联合类型,需要使用 enum 来进行构造,枚举出所有的可能类型并进行标签,枚举类型集合 可以被作为一个 单类型;
所以像 vec 这样只能容放 单类型的结构可以使用枚举类型来实现。
然后要使用真实值时也需要采用模式匹配,来解构提取真实值;
虽然表现出来是麻烦的,但是保证了内存不浪费与安全;
且强制让程序做了穷尽(exhaustive)处理,也就是处理了所有的可能性。

  1. fn vec_enum_test() {
  2. #[derive(Debug)]
  3. enum SpreadsheetCell {
  4. Int(i32),
  5. Float(f64),
  6. Text(String),
  7. }
  8. let row = vec![
  9. SpreadsheetCell::Int(3),
  10. SpreadsheetCell::Text(String::from("blue")),
  11. SpreadsheetCell::Float(10.12),
  12. ];
  13. for i in &row {
  14. match i {
  15. SpreadsheetCell::Int(n) => println!("{:?}", n),
  16. SpreadsheetCell::Text(s) => println!("{:?}", s),
  17. SpreadsheetCell::Float(f) => println!("{:?}", f),
  18. }
  19. }
  20. }

类型安全除了非空,还有是否进行了穷举。