Rust: How non-primitive types are available in the default scope
In rust, str
is a primitive type, but many non-primitive types are also in scope by default.
e.g. We do not need to add use
statement to use Vec
- which is NOT a primitive type.
It comes from std::vec
So Vec::new()
is really std::vec::Vec::new()
Vec::new()
works because Rust inserts this at the beginning of every module:
use std::prelude::v1::*;
This makes Vec
(and String
, Option
and Result
) available by default.
I learnt this from learn rust in half an hour