Generic Enum
Option
và Result
là 2 ví dụ của generic struct.
#![allow(unused)] fn main() { enum Option<T> { Some(T), None, } enum Result<T, E> { Ok(T), Err(E), } }
Sử dụng Option<T>
:
fn get_id_from_name(name: &str) -> Option<i32> { if !name.starts_with('d') { return None; } Some(123) } fn main() { let name = "duyet"; match get_id_from_name(name) { Some(id) => println!("User = {}", id), _ => println!("Not found"), } }
Xem thêm: Enum > Option
Sử dụng Result<T, E>
:
fn get_id_from_name(name: &str) -> Result<i32, &str> { if !name.starts_with('d') { return Err("not found"); } Ok(123) } fn main() -> Result<(), &'static str> { let name = "duyet"; match get_id_from_name(name) { Ok(id) => println!("User = {}", id), Err(e) => println!("Error: {}", e), }; Ok(()) }
Xem tưhêm: Enum > Result<T, E>