В данный момент я изучаю Rust. В основном я использую книгу по языку программирования Rust и эту замечательную справку , которая связывает свойства / синтаксис Rust с эквивалентами C ++.
Мне трудно понять, где останавливается основной язык и запускается стандартная библиотека. Я встречал много операторов и / или черт, которые, кажется, имеют особые отношения с компилятором. Например, Rust имеет trait
(который, как я понимаю, похож на интерфейс), называемый Deref
, который позволяет разыменовать тип, реализующий его, используя оператор *
:
fn main() {
let x = 5;
let y = Box::new(x);
assert_eq!(5, x);
assert_eq!(5, *y);
}
Другим примером является оператор ?
, который, кажется, зависит от типов Result
и Option
.
Может ли код, использующий эти операторы, быть скомпилирован без стандартной библиотеки? А если нет, то какие части языка Rust зависят от стандартной библиотеки? Можно ли вообще скомпилировать любой код Rust без него?