Option
和 Result
這些型別代表選擇性的資料:
fn main() { let numbers = vec![10, 20, 30]; let first: Option<&i8> = numbers.first(); println!("first: {first:?}"); let idx: Result<usize, usize> = numbers.binary_search(&10); println!("idx: {idx:?}"); }
Option
和Result
這兩種型別的使用範圍很廣,不侷限於標準函式庫。- 相較於
&T
,Option<&T>
的空間開銷為零。 Result
是實作錯誤處理的標準型別,我們將在第 3 天的課程中介紹。binary_search
會回傳Result<usize, usize>
。- 如果找到該元素,
Result::Ok
會保留該元素所在位置的索引。 - 如果沒有找到,
Result::Err
會包含應插入這類元素的索引。
- 如果找到該元素,