【发布时间】:2020-08-09 22:54:32
【问题描述】:
我定义了一个枚举,如下所示(TableCell)。然后我创建一个 Vec(行)并将一个 TableCell 推入该行。然后我有另一个 Vec (table_data) 我将行推入。最后我输出存储在 table_data 中的值:
#[derive(Debug)]
enum TableCell {
Label(String),
Float(f32),
}
let mut row = vec![];
row.push(TableCell::Float(client_budget.cost)); //(client_budget.cost = 1000.00)
let mut table_data = Vec::new();
table_data.push(row);
for value in table_data.iter() {
println!("{:#?}", value)
}
我的输出是 Float(1000.00)。我如何只获得 1000.00?
【问题讨论】:
-
这能回答你的问题吗? Unwrap inner type when enum variant is known
-
如果你不喜欢
Debug的默认派生,要么自己实现它,要么使用带有 a different derivation 的 crate。 -
Ted:不确定我是否完全理解如何申请您的评论,但我尝试了 row.push(TableCell::Float(client_budget.cost).unwrap()) 和 row.push(TableCell: :float(client_budget.cost.unwrap())),两者都有编译错误。
-
麦卡顿:我该怎么做?我是生锈的新手。指向我可以阅读的内容的链接?
-
参见 Rust 编程语言的 Patterns that Bind to Values 部分。
标签: rust