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 convert struct to bytes in Rust
- How to update struct in Rust
- Example of struct private field in Rust
- How to extend struct from another struct in Rust
- Example of constant struct in Rust
- How to serialize struct to xml in Rust
- Example of Rust struct with closure
- Example of struct with vector field in Rust
- How to sort a struct in Rust
- How to pretty print a struct in Rust
More of Rust
- How to use Unicode in a regex in Rust?
- How to match a URL with a regex in Rust?
- Pointer comparison in Rust
- How to match whitespace with a regex in Rust?
- How to replace a capture group using Rust regex?
- How to replace strings using Rust regex?
- How to convert a Rust slice to a fixed array?
- How to use 'or' in Rust regex?
- How do I get the last character from a string in Rust?
- How borrow instead of move in Rust
See more codes...