rustYield example in Rust
Yield is a feature of Rust that allows a function to pause its execution and return a value to the caller. It is similar to the return statement, but instead of returning a single value, it can return multiple values over time.
Example code
fn main() {
let mut counter = 0;
let result = counter_generator(3);
for x in result {
println!("{}", x);
}
}
fn counter_generator(x: i32) -> impl Iterator<Item = i32> {
(0..x).map(|x| {
counter += 1;
counter
})
}
Output example
1
2
3
Code explanation
fn main()
: This is the main function, which is the entry point of the program.let mut counter = 0
: This declares a mutable variablecounter
and initializes it to 0.let result = counter_generator(3)
: This calls thecounter_generator
function with the argument3
and stores the result in theresult
variable.for x in result
: This loop iterates over the values returned by thecounter_generator
function.fn counter_generator(x: i32) -> impl Iterator<Item = i32>
: This is thecounter_generator
function, which takes ani32
argument and returns anIterator
ofi32
values.(0..x).map(|x| { counter += 1; counter })
: This uses themap
method to iterate over the range0..x
and increment thecounter
variable each time. Thecounter
variable is then yielded to the caller.
Helpful links
Related
More of Rust
- How to match a URL with a regex in Rust?
- How to replace a capture group using Rust regex?
- How to get an entry from a HashSet in Rust?
- How to match whitespace with a regex in Rust?
- How to replace all matches using Rust regex?
- Regex example to match multiline string in Rust?
- How to convert a Rust HashMap to a JSON string?
- How to sort a struct in Rust
- How to replace strings using Rust regex?
- How to ignore case in Rust regex?
See more codes...