rust - 有没有比匹配更好的方法来访问相同类型的枚举值?

标签 rust enums match traits

是否有更好的方法来访问在各种情况下共享相同变量类型的枚举的内容?
目前我是这样解决的:

enum Token<'a> {
    Word(&'a str),
    Reserved(&'a str),
    Whitespace(&'a str),
}

impl<'a> ToString for Token<'a> {
    fn to_string(&self) -> String {
        match self {
            Self::Word(str) | Self::Reserved(str) | Self::Whitespace(str) => str.to_string(),
        }
    }
}

最佳答案

这个实现没有。但你可以(也许应该)改为

enum TokenKind {
    Word,
    Reserved,
    Whitespace,
}

struct Token<'a> {
  string: &'a str, 
  kind: TokenKind
}

这更具可扩展性,并且代码重复更少。

关于rust - 有没有比匹配更好的方法来访问相同类型的枚举值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72997331/

相关文章:

java - 如何给定类名 "valueOf"枚举?

javascript - 正则表达式在 JavaScript 中不起作用

rust - 在Rust中返回函数的正确语法是什么?

data-structures - 为什么由于 "overflow while adding drop-check rules"无法实例化数据结构?

rust - 改变闭包体中的变量

Java 枚举静态最终实例变量

rust - 无锁堆栈,将 is_empty() 中的 Acquire 替换为 Relaxed

java - 在 Java 中使用具有枚举类型的元组作为 HashMap 的键

MySQL:在 JOIN 中合并

r - 根据 R 中的多列条件查找百分比