【发布时间】:2021-04-16 13:46:38
【问题描述】:
我手上有一个最奇怪的案子。我有一个可以转换为字符串的枚举。提供的枚举是例如。绿色,所以从匹配返回的字符串是“文本成功”。简单吧?事实证明,无论我如何获得它,返回的字符串始终是“”。这对我来说毫无意义。请帮忙!
fn bootstrap_table_color (e: Color) -> String {
let s: String = match &e {
White => "".to_string(),
Blue => String::from("table-info"),
Green => "table-success".to_string(),
Yellow => "table-warning".to_string(),
Red => "table-danger".to_string(),
};
println!("bootstrap_table_color ({:?}) -> {:?}", e, s);
return s;
}
bootstrap_table_color (Blue) -> ""
bootstrap_table_color (Green) -> ""
【问题讨论】:
-
这是一个常见错误,但编译器警告非常有效地捕获了该错误。如果您将它们关闭,请考虑将它们打开,并实际检查它们 - 这将使您使用 Rust 的体验更加愉快。
-
我同意。我非常专注于添加下一个功能,并将警告留到以后。我经常这样做是因为当我开始实现时有很多未使用的变量和函数。这是一个错误。
标签: rust enums pattern-matching