其他型別

Rust 型別C++ Type
Stringrust::String
&strrust::Str
CxxStringstd::string
&[T]/&mut [T]rust::Slice
Box<T>rust::Box<T>
UniquePtr<T>std::unique_ptr<T>
Vec<T>rust::Vec<T>
CxxVector<T>std::vector<T>
  • 這些型別可用於共用結構體的欄位,以及外部函式的引數和回傳內容。
  • 請注意,Rust 的 String 不會直接對應至 std::string。以下列舉幾個原因:
    • std::string 不會維護 String 所需的 UTF-8 不變體。
    • 這兩種型別的內部記憶體結構不同,因此無法在語言之間直接傳遞。
    • std::string 需要的移動建構函式與 Rust 的移動語意不相符,因此 std::string 無法透過值傳遞至 Rust。