zoukankan      html  css  js  c++  java
  • 【Rust】枚举的使用

    环境

    • Rust 1.55.0
    • VSCode 1.59.1

    概念

    参考:https://doc.rust-lang.org/stable/rust-by-example/custom_types/enum/enum_use.html

    枚举类型的简单使用。

    示例

    类型别名

    Self 就是实现当前 trait 的类型的别名。

    enum VeryVerboseEnumOfThingsToDoWithNumbers {
        Add,
        Subtract,
    }
    
    impl VeryVerboseEnumOfThingsToDoWithNumbers {
        fn run(&self, x: i32, y: i32) -> i32 {
            match self {
                Self::Add => x + y,
                Self::Subtract => x - y,
            }
        }
    }
    
    fn main() {
        type Operations = VeryVerboseEnumOfThingsToDoWithNumbers;
        let x = Operations::Add;
        match x {
            Operations::Add => println!("add..."),
            Operations::Subtract => println!("subtract..."),
        }
    
        println!("subtract: {}", Operations::Subtract.run(1, 1));
    }
    

    使用 use 导入

    使用 use 声明的话,就可以不写出名称的完整路径。

    #![allow(dead_code)]
    enum Status {
        Rich,
        Poor,
    }
    
    fn main() {
        use Status::{Poor, Rich};
    
        let status = Poor;
    
        match status {
            Rich => println!("The rich have lots of money!"),
            Poor => println!("The poor have no money..."),
        }
    }
    

    C 类型枚举

    #![allow(dead_code)]
    enum Number {
        Zero,
        One,
        Two,
    }
    
    // enum with explicit discriminator
    enum Color {
        Red = 0xff0000,
        Green = 0x00ff00,
        Blue = 0x0000ff,
    }
    
    fn main() {
        // `enums` can be cast as integers.
        println!("zero is {}", Number::Zero as i32);
        println!("one is {}", Number::One as i32);
    
        println!("roses are #{:06x}", Color::Red as i32);
        println!("violets are #{:06x}", Color::Blue as i32);
    }
    

    总结

    使用了 Rust 中的枚举类型。

    附录

  • 相关阅读:
    msp430入门学习30
    msp430入门学习03
    msp430入门学习27
    msp430入门学习26
    msp430入门学习25
    msp430入门学习24
    msp430入门学习23
    msp430入门学习22
    去掉xcode中警告的一些经验
    CocoaPods详解之----使用篇
  • 原文地址:https://www.cnblogs.com/jiangbo44/p/15626865.html
Copyright © 2011-2022 走看看