Exemplo:
use std::ops::Index;
fn test(v: &Vec<Vec<i32>>) {
let t = v.index(0); //ok
let t = v[0]; //error, Vec<i32> does not implement Copy trait
}
Por que isso acontece? Conforme especificado na documentação :
fn index(&self, index: I) -> &<Vec<T, A> as Index<I>>::Output
Executa a
container[index]
operação de indexação ( )
Então deveria ser o mesmo.
Há uma desreferência oculta quando você usa colchetes. A
Index
documentação da característica diz:Se você adicionar
*
à primeira linha, receberá a mesma mensagem de erro:Parque infantil