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>