Can `?` be used with other types?

084

Yes, the ? operator in Rust can be used with any type that implements the std::ops::Try trait, which includes types like Result and Option.

Example with Option

Here's how you can use the ? operator with Option:

fn find_item(index: usize) -> Option<&'static str> {
    let items = ["apple", "banana", "cherry"];
    items.get(index).copied()
}

fn main() {
    let item = find_item(1)?;
    println!("Found item: {}", item);
}

In this example, if find_item returns None, the ? operator will cause the function to return None immediately. If it returns Some, the value is extracted and assigned to item.

Summary

  • The ? operator can be used with Result for error handling.
  • It can also be used with Option to handle cases where a value might be absent.

If you have a specific type in mind, please let me know!

0 Comments

no data
Be the first to share your comment!