Option

我們已看過 Option<T> 的某些用法,包括儲存型別為 T 的值,或不儲存任何東西。舉例來說,String::find 會傳回 Option<usize>

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 10 minutes.
  • Option is widely used, not just in the standard library.
  • unwrap 會在 Option 或恐慌中傳回值。expect 也類似,但會收到錯誤訊息。
    • 您可以讓程式在 None 發生恐慌,但不能「因錯而」忘記檢查 None。
    • 如果是要設計某些臨時程式,通常會在各處 unwrap/expect,但實際運作的程式碼一般會以較好的方式處理 None
  • 所謂區位最佳化,代表 Option<T> 的記憶體大小通常與 T 相同。