Não entendi bem a ideia de mutabilidade em Rust na seguinte situação:
- Vec mutável com elementos mutáveis
- Vec mutável com elementos imutáveis
- Vec imutável com elementos mutáveis
- Vec imutável com elementos imutáveis.
Até onde eu entendi, se ambos são imutáveis (4), então é apenas um vetor somente leitura. Mas, desde que eu torne o vetor mutável, não importa se os elementos são mutáveis ou não...
Com vetor mutável eu sempre posso mutar elementos mesmo que eu não os tenha tornado mutáveis...
let mut st1 = String::from("Some");
let mut st2 = String::from("Value");
let vec: Vec<&mut str> = vec![&mut st1, &mut st2];
Alguém pode explicar em quais situações as combinações acima devem ser usadas e se há certos limites para cada uma delas?
Muito obrigado!
Referência de Referência e Mutabilidade
Então, primeiro você precisa entender, referência de referência
Isso significa que se você quiser alterar um valor atrás de dois graus de referência, precisará que ambos os graus sejam uma referência mutável.
Exemplo com
Vec