Rust Array Access is Bound Checked at Runtime
Today I encountered a feature of Rust that I hadn't seen before— uses of array subscript notation ('array[n]
') are checked at runtime to ensure they fit into the bounds of the array.
Here's a passing test I wrote to demonstrate:
// src/lib.rs
#[test]
#[should_panic(expected="index out of bounds: the len is 3 but the index is 5")]
fn array_access_is_bound_checked_at_runtime() {
let elements = ["Wind", "Fire", "Water"];
assert_eq!("Wind", elements[5]);
}
'Such errant access is the source of many bugs in other systems programming languages.' —The Rust Programming Language
More information:
https://doc.rust-lang.org/book/primitive-types.html#arrays
Tweet