Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run »
HTML / CSS / JS
fn find_first_even(nums: &[i32]) -> Option<i32> { for &n in nums { if n % 2 == 0 { return Some(n); } } None } fn divide(a: f64, b: f64) -> Option<f64> { if b == 0.0 { None } else { Some(a / b) } } fn main() { let numbers = vec![1, 3, 7, 4, 9]; // if let — only runs when Some if let Some(even) = find_first_even(&numbers) { println!("first even: {even}"); } else { println!("no even numbers found"); } // Combinators let result = find_first_even(&numbers) .map(|n| n * n) .unwrap_or(0); println!("first even squared (or 0): {result}"); // Chaining Options let doubled = divide(10.0, 2.0) .and_then(|q| divide(q, 2.0)) .map(|v| v * 3.0); println!("chained result: {:?}", doubled); // Division by zero println!("10 / 0 = {:?}", divide(10.0, 0.0)); // while let — pop from a stack until empty let mut stack = vec![1, 2, 3]; while let Some(top) = stack.pop() { print!("{top} "); } println!(); // unwrap_or_else let odds_only = vec![1, 3, 5]; let val = find_first_even(&odds_only).unwrap_or_else(|| -1); println!("fallback value: {val}"); }
Result
Open