Rust 語言之旅 目錄

熟悉的老朋友

來看看一些我們已經見過的智慧指標,例如 Vec<T> 及 String。

Vec<T> 是一個智慧指標,它擁有一段位元組的記憶體區域。Rust 編譯器完全不知道這些位元組裡有什麼東西。 這個智慧指標會負責解讀從它所管理的記憶體區域裡取得元素代表的意思,追蹤這些位元組裡的資料結構是從哪裡開始、在哪裡結束, 最後再把一個原始指標解參考成資料結構,變成一個乾淨、符合人體工學的介面讓我們可以使用 (例如:my_vec[3])。

同樣地,String 也會追蹤一段位元組的記憶體區域,並且以程式的方式限制寫入其中的內容永遠都是合法的 utf-8, 並協助把那段記憶體區域解參考成型別 &str。

這兩種資料結構都使用了不安全的原始指標解參考來完成它們的工作。

記憶體細節: