Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Дополнительные типы

RustC++
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>
  • Эти типы можно использовать в полях общих структур, а также в аргументах и возвращаемых значениях внешних функций.
  • Обратите внимание, что String в Rust напрямую не соответствует std::string. Этому есть несколько причин:
    • std::string не поддерживает инвариант UTF-8, который требует String.
    • У этих типов разная раскладка в памяти, поэтому их нельзя напрямую передавать между языками.
    • std::string требует конструкторов перемещения, которые не совпадают с семантикой перемещения Rust, поэтому std::string нельзя передать в Rust по значению.