OptionResult

這些型別代表選擇性的資料:

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:?}");
}
  • OptionResult 這兩種型別的使用範圍很廣,不侷限於標準函式庫。
  • 相較於 &TOption<&T> 的空間開銷為零。
  • Result 是實作錯誤處理的標準型別,我們將在第 3 天的課程中介紹。
  • binary_search 會回傳 Result<usize, usize>
    • 如果找到該元素,Result::Ok 會保留該元素所在位置的索引。
    • 如果沒有找到,Result::Err 會包含應插入這類元素的索引。