I have a Vec which contains tuples (String,f32)
. I wanted to partition it based on my f32
. Below is the sample,
fn main() {
let a = vec![
(String::from("A"),-1.0),
(String::from("B"), 1.0),
(String::from("C"),-2.0),
];
let (p,n): (Vec<(String,f32)>, Vec<(String,f32)>) = a.iter()
.partition(|(_,val)| *val>=0.0);
println!("{:?}", p);
}
Can you please help me?
s3bk
2
let (p,n): (Vec<(String,f32)>, Vec<(String,f32)>) = a.into_iter()
.partition(|&(ref string, val)| val>=0.0);
- Partition needs ownership of the values, so
Vec::into_iter
is is used.
-
partition()
passes a reference to the value to the closure, so &(ref string, value)
is used. ref string
creates a reference. (_
can also be used).
1 Like
system
Closed
3
This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.