Rust function for modifying characters with Closure
Write a Rust function that takes a closure and a vector of characters. Apply the closure to each character, and returns a new vector of modified characters.
Sample Solution:
Rust Code:
fn apply_closure_to_chars<F>(chars: Vec<char>, closure: F) -> Vec<char>
where
F: Fn(char) -> char, // Closure trait bound
{
chars.into_iter() // Convert the input vector into an iterator
.map(closure) // Apply the closure to each character
.collect() // Collect the modified characters into a new vector
}
fn main() {
let chars = vec!['A', 'B', 'C', 'D', 'E'];
println!("Original characters: {:?}", chars); // Print original characters
let modified_chars = apply_closure_to_chars(chars, |c| c.to_ascii_lowercase()); // Example usage: Convert each character to uppercase
println!("Modified characters: {:?}", modified_chars);
}
Output:
Original characters: ['A', 'B', 'C', 'D', 'E'] Modified characters: ['a', 'b', 'c', 'd', 'e']
Explanation:
In the exercise above,
- apply_closure_to_chars: This function takes a vector of characters 'chars' and a closure 'closure' as arguments. The closure takes a 'char' and returns a 'char'.
- Inside the function, the 'chars' vector is converted into an iterator. The "map()" method is used to apply the closure to each character, transforming each element.
- Finally, the "collect()" method is used to collect the modified characters into a new vector.
- In the "main()" function, an example usage of "apply_closure_to_chars()" function takes a vector of characters and applies a closure that converts each character to uppercase. Finally, it prints the modified characters.
Rust Code Editor:
Previous: Rust function for maximum result with Closure.
Next: Rust Higher-Order function for Tuple modification.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics