Имеет ли Rust эквивалент синтаксису понимания списка Python? Понимание списка Python действительно просто: >>> l = [x for x in range(1, 10) if x % 2 == 0] >>> [2, 4, 6, 8] Имеет ли Rust такой же синтаксис, как: let vector = vec![x for x in (1..10) if x % 2 == 0] // [2, 4, 6, 8] Ответ 1 Вы можете просто использовать итераторы: fn main() { let v1 = (0u32..9).filter(|x| x % 2 == 0).map(|x| x.pow(2)).collect::<Vec<_>>(); let v2 = (1..10).filter(|x| x % 2 == 0).collect::<Vec<u32>>(); println!("{:?}", v1); // [0, 4, 16, 36, 64] println!("{:?}", v2); // [2, 4, 6, 8] } Ответ 2 cute - это макрос для Python-esque и словарных (HashMap) понятий в Rust. #[macro_use(c)] extern crate cute; let vector = c![x, for x in 1..10, if x % 2 == 0];
Ответ 1 Вы можете просто использовать итераторы: fn main() { let v1 = (0u32..9).filter(|x| x % 2 == 0).map(|x| x.pow(2)).collect::<Vec<_>>(); let v2 = (1..10).filter(|x| x % 2 == 0).collect::<Vec<u32>>(); println!("{:?}", v1); // [0, 4, 16, 36, 64] println!("{:?}", v2); // [2, 4, 6, 8] }
Ответ 2 cute - это макрос для Python-esque и словарных (HashMap) понятий в Rust. #[macro_use(c)] extern crate cute; let vector = c![x, for x in 1..10, if x % 2 == 0];