Matrizes
fn main() { let mut a: [i8; 10] = [42; 10]; a[5] = 0; println!("a: {a:?}"); }
-
O valor do tipo matriz
[T; N]
comportaN
elementos (constante em tempo de compilação) do mesmo tipoN
. Note que o tamanho de uma matriz é parte do seu tipo, o que significa que[u8; 3]
e[u8; 4]
são considerados dois tipos diferentes. Slices (fatias), que têm um tamanho determinado em tempo de execução, são abordados mais tarde. -
Tente acessar um elemento de matriz fora dos limites. Os acessos a matrizes são verificados em tempo de execução. Rust geralmente pode otimizar essas verificações e elas podem ser evitadas usando Rust inseguro.
-
Nós podemos usar literais para atribuir valores para matrizes.
-
A macro
println!
pede a implementação de depuração com o parâmetro de formato?
:{}
dá a saída padrão,{:?}
dá a saída de depuração. Tipos como inteiros e strings implementam a saída padrão, mas matrizes implementam apenas a saída de depuração. Isso significa que devemos usar a saída de depuração aqui. -
Adicionando
#
, p.ex.{a:#?}
, invoca um formato "pretty printing", que pode ser mais legível.