DF
Size: a a a
DF
DF
DF
DF
AK
DF
DF
В
map_while
, который продолжает возвращать Some(_)
, после None
? e.g.:use std::convert::identity;
let mut iter = vec![Some(0), None, Some(1)].into_iter().map_while(identity);
assert_eq!(iter.next(), Some(0));
assert_eq!(iter.next(), None);
assert_eq!(iter.next(), Some(1));
p
p
map_while
, который продолжает возвращать Some(_)
, после None
? e.g.:use std::convert::identity;
let mut iter = vec![Some(0), None, Some(1)].into_iter().map_while(identity);
assert_eq!(iter.next(), Some(0));
assert_eq!(iter.next(), None);
assert_eq!(iter.next(), Some(1));
r
map_while
, который продолжает возвращать Some(_)
, после None
? e.g.:use std::convert::identity;
let mut iter = vec![Some(0), None, Some(1)].into_iter().map_while(identity);
assert_eq!(iter.next(), Some(0));
assert_eq!(iter.next(), None);
assert_eq!(iter.next(), Some(1));
map_while
отличается от map
?r
r
r
.map_while()
будет равно .and_then().fuse()
r
В
and_then
? and_then
на мой взгляд одно из худший названий в std >_<AZ
В
.enumerate().filter_map(|(idx, e)| {
let result = ...;
if result.is_none() { dbg!(idx); }
result
})
r
and_then
? and_then
на мой взгляд одно из худший названий в std >_<map_while()
в текущем виде. А про предложенный вариант, который не останавливается на первом None
r
.enumerate().filter_map(|(idx, e)| {
let result = ...;
if result.is_none() { dbg!(idx); }
result
})
map()
в Option<>