計算機程序必須在運行時管理它們所使用的內(nèi)存資源珍剑。
大多數(shù)的編程語言都有管理內(nèi)存的功能:
C/C++ 這樣的語言主要通過手動方式管理內(nèi)存,開發(fā)者需要手動的申請和釋放內(nèi)存資源穆壕。但為了提高開發(fā)效率待牵,只要不影響程序功能的實現(xiàn),許多開發(fā)者沒有及時釋放內(nèi)存的習慣喇勋。所以手動管理內(nèi)存的方式常常造成資源浪費缨该。
Java 語言編寫的程序在虛擬機(JVM)中運行,JVM 具備自動回收內(nèi)存資源的功能川背。但這種方式常常會降低運行時效率贰拿,所以 JVM 會盡可能少的回收資源,這樣也會使程序占用較大的內(nèi)存資源熄云。
所有權(quán)對大多數(shù)開發(fā)者而言是一個新穎的概念膨更,它是 Rust 語言為高效使用內(nèi)存而設(shè)計的語法機制。所有權(quán)概念是為了讓 Rust 在編譯階段更有效地分析內(nèi)存資源的有用性以實現(xiàn)內(nèi)存管理而誕生的概念缴允。
所有權(quán)規(guī)則
所有權(quán)有以下三條規(guī)則:
Rust 中的每個值都有一個變量荚守,稱為其所有者。
一次只能有一個所有者练般。
當所有者不在程序運行范圍時矗漾,該值將被刪除。
這三條規(guī)則是所有權(quán)概念的基礎(chǔ)薄料。
接下來將介紹與所有權(quán)概念有關(guān)的概念敞贡。