系列: Rust 精進之路:構建可靠、高效軟件的底層邏輯
作者: 碼覺客
發布日期: 2025年4月20日
引言:所有權的“限制”與“變通”之道
在上一篇【所有權·核心】中,我們揭示了 Rust 如何通過所有權規則和移動 (Move) 語義來保證內存安全,避免了垃圾回收器的同時,也防止了諸如二次釋放等內存錯誤。然而,我們也看到,所有權的轉移有時顯得過于“霸道”——一旦將值(如 String
)傳遞給函數或賦給新變量,原來的所有者就失去了對它的控制權。
如果我們僅僅是想讓一個函數讀取一下數據,或者臨時修改一下數據,并不希望交出所有權,該怎么辦呢?難道每次都得把所有權移交過去,再讓函數把所有權還回來嗎?這顯然不夠方便,有時甚至是不可能的。
為了解決這個問題,Rust 引入了借用 (Borrowing) 的概念,通過引用 (References) 來實現。引用允許我們創建一個指向值的“指針”,讓其他代碼可以訪問這個值,而無需獲得其所有權。這就像你把書借給朋友看