Quero iterar duas strings no Rust. Li que não é eficiente usar índices ( nth()
método). É por isso que estou usando iteradores
fn main() {
let s1 = String::from("abacde");
let s2 = String::from("123456");
let mut iter1 = s1.chars();
let mut iter2 = s2.chars();
while let Some(ch1) = iter1.next() && let Some(ch2) = iter2.next(){
println!("{:?}", ch1);
}
}
Eu tenho um erro
erro[E0658]:
let
expressões nesta posição são instáveis
Como corrigi-lo?
Para resolver seu problema real, você pode iterar mais de 2 iteradores em sincronia com
zip
:Para responder à sua pergunta:
let
cadeias, como múltiplas atribuições let dentro de umwhile
ouif
são chamadas, são instáveis. Todos os recursos instáveis requerem um compilador noturno para serem usados. Você também precisará ativar olet_chains
recurso para a sintaxe específica da sua pergunta.na verdade, quando você estiver usando um compilador noturno, ele lhe dirá para fazer isso:
Você pode usar uma tupla e deestruturar .
playground ferrugem