переменных?
let a, b, c = some_iter
массив можно. С итераторами сложнее
let a = iter.next().unwrap(); let b = iter.next().unwrap(); let c = iter.next().unwrap(); Только так?
в расте итераторы ленивые, поэтому нельзя
Где-то есть не-ленивые?
из коробки только так. Можно сообразить хелпер или посмотреть в итертулс что-нибудь подходящее
use itertools::Itertools; fn main() { let foos = vec![1,2,3,4]; if let Some((x, y, z)) = foos.iter().tuple_windows().next() { println!("{:?} {} {}", x, y, z); } } Можно так
Суровенько. Была такая мысль стащить tuple и его в матчинг, но как-то сложновато стандартными средствами.
use itertools::Itertools; let a, b, c = some_iter.collect_tuple().unwrap();
use itertools::Itertools; let (a, b, c) = iter.next()?;
Обсуждают сегодня