Arrays
1. ```
fn main() {
```
2. ```
let mut a: [i8; 10] = [42; 10];
```
3. ```
a[5] = 0;
```
4. ```
println!("a: {a:?}");
```
5. ```
}
```
This slide should take about 5 minutes.
- A value of the array type
[T; N]holdsN(a compile-time constant) elements of the same typeT. Note that the length of the array is part of its type, which means that[u8; 3]and[u8; 4]are considered two different types. Slices, which have a size determined at runtime, are covered later. - Try accessing an out-of-bounds array element. Array accesses are checked at runtime. Rust can usually optimize these checks away, and they can be avoided using unsafe Rust.
- We can use literals to assign values to arrays.
- The
println!macro asks for the debug implementation with the?format parameter:{}gives the default output,{:?}gives the debug output. Types such as integers and strings implement the default output, but arrays only implement the debug output. This means that we must use debug output here. - Adding
#, eg{a:#?}, invokes a “pretty printing” format, which can be easier to read.
