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 protobuf in Rust
- How to init zero struct in Rust
- Example of struct with vector field in Rust
- How to convert struct to bytes in Rust
- How to sort a struct in Rust
- Example of struct private field in Rust
- Example of Rust struct with closure
- Example of constant struct in Rust
- Example of bit field in Rust struct
- How to update struct in Rust
More of Rust
- How to use regex lookahead 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 split a string with Rust regex?
- How to replace all matches using Rust regex?
- How to use non-capturing groups in Rust regex?
- How to use negation in Rust regex?
- How to perform matrix operations in Rust?
- How to match a URL with a regex in Rust?
See more codes...