Skip to content

Commit

Permalink
Merge pull request #197 from 2020leon/typo
Browse files Browse the repository at this point in the history
fix: typo for ch10-03
  • Loading branch information
wusyong authored Jan 30, 2024
2 parents 0db67ef + 3ed58c0 commit 3818188
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/ch10-03-lifetime-syntax.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ Rust 編譯器有個**借用檢查器**(borrow checker)會比較作用域來

注意當我們在此函式簽名指定生命週期參數時,我們不會變更任何傳入或傳出數值的生命週期。我們只是告訴借用檢查器應該要拒絕任何沒有服從這些約束的數值。注意到 `longest` 函式不需要知道 `x``y` 實際上會活多久,只需要知道有某個作用域會用 `'a` 取代來滿足此簽名。

當要在函式詮釋生命週期時,詮釋會位於函式簽名中,而不是函式本體。就像型別會寫在簽名中一樣,生命週期詮釋會成為函式的一部份。在函式簽名加上生命週期能讓 Rust 編譯器的分析工作變得更輕鬆。如果當函式的詮釋或呼叫的方式出問題時,編譯器錯誤就能限縮到我們的程式碼中指出來。如果都改讓 Rust 編譯器去推到可能的生命週期關係的話,編譯器可能會指到程式碼真正出錯之後的好幾步之後。
當要在函式詮釋生命週期時,詮釋會位於函式簽名中,而不是函式本體。就像型別會寫在簽名中一樣,生命週期詮釋會成為函式的一部份。在函式簽名加上生命週期能讓 Rust 編譯器的分析工作變得更輕鬆。如果當函式的詮釋或呼叫的方式出問題時,編譯器錯誤就能限縮到我們的程式碼中指出來。如果都改讓 Rust 編譯器去推導可能的生命週期關係的話,編譯器可能會指到程式碼真正出錯之後的好幾步之後。

當我們向 `longest` 傳入實際參考時,`'a` 實際替代的生命週期為 `x` 作用域與 `y` 作用域重疊的部分。換句話說,泛型生命週期 `'a` 取得的生命週期會等於 `x``y` 的生命週期中較短的。因為我們將回傳的參考詮釋了相同的生命週期參數 `'a`,回傳參考的生命週期也會保證在 `x``y` 的生命週期較短的結束前有效。

Expand Down

0 comments on commit 3818188

Please sign in to comment.