【问题标题】:How do I get data from enums in rust?如何从 rust 中的枚举中获取数据?
【发布时间】:2022-08-18 18:51:48
【问题描述】:

我正在学习 rust 并且遇到过枚举。我理解为什么它们可能对组织变量有用。访问所述枚举中的数据也更加困难。我的问题归结为:为什么人们使用枚举,是否有一种简单的方法可以从中检索数据?

我目前对后者的解决方案是使用 match 语句:

enum Breakfast {
    Toast(String),
}

fn main() {
    let breakfast = Breakfast::Toast(String::from(\"Buttered\"));

    match breakfast {
        Breakfast::Toast(t) => println!(\"{}\",t),
        _ => panic!(\"I\'m Hungry!\"), 
    }
}

这是一个非常低效的方法,有没有其他方法可以做到这一点?

    标签: rust enums match


    【解决方案1】:

    我理解为什么它们可能对组织变量有用。

    我不知道那是什么意思。

    我的问题归结为:为什么人们使用枚举

    因为它们允许使无效状态无法表示1: 枚举允许独家的申述。

    有没有一种简单的方法可以从中检索数据?

    matchif let,捆绑访问甚至提供更高级别操作的实用功能。

    除了“编译器从字面上告诉您_ 案例是无用的”之外,您的示例太脱离任何信息而无法对其做出任何判断(例如,关于您是否滥用枚举)。

    但例如 OptionResult 类型是枚举。因为Option任何一个SomeNoneResult任何一个OkErr。枚举允许此信息成为类型系统的一部分,因此编译器可以帮助检查它。


    1:虽然一个常见的问题是哪些状态实际上是无效的,但有些领域并不明确

    【讨论】:

      猜你喜欢
      • 2021-08-15
      • 2023-01-17
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      • 2021-04-29
      相关资源
      最近更新 更多