January 2018
Beginner to intermediate
454 pages
10h 8m
English
First, a little recap; a slice is a constant view over an array, and &[T] is the constant view of a Vec<T>, whereas &str is the constant view of a String (just like Path is the constant view of a PathBuf and OsStr is the constant view of an OsString). Now that you have this in mind, let's continue!
When a function expects a constant argument of type Vec or String, then always write them as follows:
fn some_func(v: &[u8]) {
// some code...
}
Instead of:
fn some_code(v: &Vec<u8>) {
// some code
}
And:
fn some_func(s: &str) {
// some code...
}
Instead of:
fn some_func(s: &String) {
// some code...
}
You might be wondering why this is the case. So, let's imagine your function displays your Vec as ASCII characters:
fn print_as_ascii(v: ...
Read now
Unlock full access