【发布时间】:2019-01-02 01:11:12
【问题描述】:
在 Rust 的“if - else”构造中创建或分配多个对象之一到变量的首选方法是什么?由于范围,似乎必须在 if - else 之外创建变量。我想到的两种方式都不是很好。以字符串为例,这是一种方法,但它会生成有关未使用分配的警告:
let mut s = String::new();
if condition {
s = "first".to_string();
} else {
s = "second".to_string();
}
另一种选择是:
let mut s = "second".to_string();
if condition {
s = "first".to_string();
}
它更短并且不会产生警告,但意味着s 被分配了两次,这意味着"second".to_string() 运行但如果condition 为真则被浪费。如果不是简单的字符串创建,而是这些昂贵的操作(可能有副作用),那么这种方法就不合适了。
有更好的选择吗?
【问题讨论】:
标签: rust