zoukankan      html  css  js  c++  java
  • [易学易懂系列|rustlang语言|零基础|快速入门|(12)|Enums枚举]

    [易学易懂系列|rustlang语言|零基础|快速入门|(12)]

    有意思的基础知识

    Enums

    今天我们来讲讲枚举。

    数学计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。 是一个被命名的整型常数的集合,枚举在日常生活中很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举。

    如下定义:

    enum Day {
        Sunday,
        Monday,
        Tuesday,
        Wednesday,
        Thursday,
        Friday,
        Saturday
    }
    
    // The `Day` is the enum
    // Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday are the variants
    

    枚举里面的值可以通过::来访问,如:

    Day::Sunday
    

    每个枚举的值,可以有以下形式:

    1.只有名字,没有值(单元变量)

    2.未命名有序的值 (元组变量)

    3.有命名的值(架构体变量)

    请看代码:

    enum FlashMessage {
      Success, // A unit variant
      Warning{ category: i32, message: String }, // A struct variant
      Error(String) // A tuple variant
    }
    
    fn main() {
      let mut form_status = FlashMessage::Success;
      print_flash_message(form_status);
    
      form_status = FlashMessage::Warning {category: 2, message: String::from("Field X is required")};
      print_flash_message(form_status);
    
      form_status = FlashMessage::Error(String::from("Connection Error"));
      print_flash_message(form_status);
    }
    
    fn print_flash_message(m : FlashMessage) {
      // Pattern matching with enum
      match m {
        FlashMessage::Success =>
          println!("Form Submitted correctly"),
        FlashMessage::Warning {category, message} => // Destructure, should use same field names
          println!("Warning : {} - {}", category, message),
        FlashMessage::Error(msg) =>
          println!("Error : {}", msg)
      }
    }
    

    以上,希望对你有用。

    如果遇到什么问题,欢迎加入:rust新手群,在这里我可以提供一些简单的帮助,加微信:360369487,注明:博客园+rust
    

    https://learning-rust.github.io/docs/b3.enums.html

  • 相关阅读:
    20000+关注,开源两本硬核的原创电子书!
    Tail Latency学习
    Zabbix5.0 监控redis
    JAVA多线程(九) ForkJoin框架
    JAVA多线程(八) Condition源码分析
    程序员英语学习(二) 标点符号对应的英语单词汇总
    linux shell快速入门
    Ubuntu常用指令和快捷键汇总
    Win10常用快捷键汇总
    算法路漫漫(三) 荷兰国旗
  • 原文地址:https://www.cnblogs.com/gyc567/p/11965101.html
Copyright © 2011-2022 走看看