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,x
andy
, 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 ofPoint
structs.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 thepoints
vector. The closure creates a newPoint
struct with the samex
value as the original, but with they
value incremented by 1.println!("{:?}", new_points);
: This prints the modified vector ofPoint
structs.
Helpful links
Related
- Example of struct of structs in Rust
- Example of struct private field in Rust
- How to init zero struct in Rust
- How to serialize struct to xml in Rust
- Example of Rust struct with closure
- How to get struct value in Rust
- Example of bit field in Rust struct
- Rust struct without fields
- How to update struct in Rust
- How to convert struct to protobuf in Rust
More of Rust
- How to replace a capture group using Rust regex?
- How to calculate the sum of a Rust slice?
- How do I create an array of strings in Rust?
- How to replace all matches using Rust regex?
- How to use regex to match a double quote in Rust?
- Hashshet example in Rust
- How to use regex captures in Rust?
- How to convert JSON to a struct in Rust?
- How to pop an element from a Rust HashMap?
- How to convert a Rust HashMap to a JSON string?
See more codes...