rustHow to map struct in Rust
Mapping a struct in Rust is done using the .map() method. This method takes a closure as an argument and applies it to each element of the struct. The closure can be used to modify the elements of the struct, or to create a new struct with the modified elements.
Example
struct Point {
x: i32,
y: i32,
}
let points = vec![
Point { x: 0, y: 0 },
Point { x: 1, y: 5 },
Point { x: 10, y: -3 },
];
let new_points = points.map(|p| Point { x: p.x, y: p.y + 1 });
println!("{:?}", new_points);
Output example
[Point { x: 0, y: 1 }, Point { x: 1, y: 6 }, Point { x: 10, y: -2 }]
Code explanation
struct Point { x: i32, y: i32, }: This is the definition of the structPoint, which contains two fields,xandy, both of typei32.let points = vec![ Point { x: 0, y: 0 }, Point { x: 1, y: 5 }, Point { x: 10, y: -3 }, ];: This creates a vector ofPointstructs.let new_points = points.map(|p| Point { x: p.x, y: p.y + 1 });: This uses the.map()method to apply a closure to each element of thepointsvector. The closure creates a newPointstruct with the samexvalue as the original, but with theyvalue incremented by 1.println!("{:?}", new_points);: This prints the modified vector ofPointstructs.
Helpful links
Related
- How to init zero struct in Rust
- Example of Rust struct with closure
- Example of constant struct in Rust
- Example of struct private field in Rust
- How to serialize struct to xml in Rust
- Example of bit field in Rust struct
- Rust struct without fields
- Example of struct with vector field in Rust
- How to update struct in Rust
- How to sort a struct in Rust
More of Rust
- How to use regex lookahead in Rust?
- How to use Unicode in a regex in Rust?
- How to replace a capture group using Rust regex?
- How to replace all matches using Rust regex?
- Example of yield_now in Rust?
- How to map a Rust slice?
- How to check for equality between Rust slices?
- How can I use a hashmap as a global variable in Rust?
- How to iterate over a Rust HashMap?
- How to use a generator map in Rust?
See more codes...