Когда переменная опции, как известно, не- None
, его обычно прекрасно пишут:Может ли синтаксис `let Some (var) = option;` использоваться в ситуации, когда известно, что это не `None`?
let var = option_var.unwrap();
В одном случае я столкнулся, это вызвало ошибку о переходе из заимствованного контекста.
if let Some(var) = option_var { ... }
(Handy, так как позволяет Some(ref mut var) = option_var
тоже).
Это работает, однако в этом случае я не хочу, чтобы это было заявлением if
. Письмо let Some(var) = option_var;
с ошибкой "шаблон None
не покрыт".
Должно быть ясным Этот вопрос не о заемном контексте.
Может ли синтаксис let Some(var) = option;
использоваться в ситуации, когда известно, что это не None
? Разрешение «Шаблон None
не покрыт» предупреждением? Или это просто не поддерживается вне заявления if
?
«В одном случае я столкнулся с тем, что в этом случае? – Ven
Или дубликат http://stackoverflow.com/q/30463490/155423; http://stackoverflow.com/q/30365055/155423; или любой из [** 105 других ** вопросов о «не может выйти из заемного контента»] (http://stackoverflow.com/search?q=is%3Aq+%5Brust%5D+cannot+move+out+of + заимствованные). Жаль, что здесь недостаточно деталей, чтобы выбрать лучший дубликат. – Shepmaster
Этот вопрос касается не заимствованного контекста, а его использования 'let Some (var) = option_var' - если это возможно вне оператора if. – ideasman42