Skip to content

Instantly share code, notes, and snippets.

@vladyio
Created April 8, 2016 13:59
Show Gist options
  • Save vladyio/3890bff9ae679cceb9d81c37101fef3d to your computer and use it in GitHub Desktop.
Save vladyio/3890bff9ae679cceb9d81c37101fef3d to your computer and use it in GitHub Desktop.
iterators.rs
// Для ренджей в раст реализован IntoIter, а итератор коллекционируется в вектор функцией collect:
let arr: Vec<u8> = (0..200).into_iter().collect();
//причем итераторы в раст ленивые, т.е. (0..200).into_iter() ≡ xrange(200),
//а (0..200).into_iter().collect() ≡ list(xrange(200)).
//Если ты имел ввиду list comprehensions из python, то было что-то такое на базе макросов, но нестрого говоря это лишь сахар над map и filter.
//Питоновский пример:
//M = [x**2 for x in range(10) if x % 2 == 0]
//будет выглядеть так:
let m: Vec<u8> = (0..10).into_iter().filter(|x| x % 2 == 0).map(|x| x * x).collect();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment