Я работаю через книгу Rust, а именно мини-репроект . Там я наткнулся на следующий фрагмент:
fn main() {
let args: Vec<String> = env::args().collect();
let (query, filename) = parse_config(&args);
// --snip--
}
fn parse_config(args: &[String]) -> (&str, &str) {
let query = &args[1];
let filename = &args[2];
(query, filename)
}
Запутанная вещь для меня - args: &[String]
. Если я заменю его на args: &Vec<String>
, это тоже работает. Я предполагаю, что &[String]
- это более общая аннотация типа, которая соответствует не только &Vec<String>
, но и некоторым другим типам. Это верно? Если да, то какие другие типы соответствуют [T]
?