元組結構體

如果欄位名稱不重要,您可以使用元組結構體:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

這通常用於單一欄位的包裝函式 (稱為 newtypes):

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 10 minutes.
  • 如要對原始型別中值的額外資訊進行編碼,Newtypes 是絕佳的方式,舉例來說:
    • 此數字會採用某些測量單位:在上例中為 Newtons
    • The value passed some validation when it was created, so you no longer have to validate it again at every use: PhoneNumber(String) or OddNumber(u32).
  • 示範如何透過存取 newtype 中的單一欄位,將 “f64” 值新增至 Newtons 類型。
    • Rust 通常不太能接受不明確的內容,例如自動展開或使用布林值做為整數。
    • 運算子超載會在第 3 天 (泛型) 討論。
  • 此範例巧妙地以 Mars Climate Orbiter 的失敗經驗做為參照。