Каков предпочтительный способ создания или присвоения одного из нескольких объектов переменным внутри конструкции «если - еще» в Rust?Из-за области видимости, похоже, переменная должна быть создана вне 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
имеет значение true.Если бы вместо простого создания строки это были дорогостоящие операции (возможно, с побочными эффектами), этот метод не подойдет.
Есть ли лучшая альтернатива?