Масиви

fn main() {
    let mut a: [i8; 10] = [42; 10];
    a[5] = 0;
    println!("a: {a:?}");
}
This slide should take about 5 minutes.
  • Значення типу масиву [T; N] містить N (константа часу компіляції) елементів того самого типу T. Зверніть увагу, що довжина масиву є частиною його типу, що означає, що [u8; 3] і [u8; 4] вважаються двома різними типами. Зрізи, розмір яких визначається під час виконання, покриваються пізніше.

  • Спробуйте доступ до елементу масиву, що знаходиться за межами масиву. Доступ до масиву перевіряється під час виконання. Зазвичай Rust може оптимізувати ці перевірки, і їх можна уникнути, використовуючи небезпечний Rust.

  • Ми можемо використовувати літерали для присвоєння значень масивам.

  • Макрос println! запитує реалізацію налагодження за допомогою параметра формату ?: {} - виведення за замовчуванням, {:?} - виведення налагодження. Такі типи, як цілі числа і рядки, реалізують виведення за замовчуванням, але масиви реалізують лише виведення для налагодження. Це означає, що тут ми повинні використовувати налагоджувальний вивід.

  • Додавання #, наприклад {a:#?}, викликає формат "гарного друку", який може бути легшим для читання.