Entendi que manipular um tipo String é custoso, mas não consegui visualisar uma caso de uso em que não possa usar simplesmente um type &str no lugar de String. Poderiam me ajudar?
Entendi que manipular um tipo String é custoso, mas não consegui visualisar uma caso de uso em que não possa usar simplesmente um type &str no lugar de String. Poderiam me ajudar?
Ótima pergunta, Marcos. Via de regra, tente sempre trabalhar com str
. str
é um tipo de dado fixo, imutável, que pode ser armazenado na heap, stack ou no binário do código em si. Já String
é como se fosse realmente um objeto e sempre está na heap. Com isso, String
pode ser alterada, aumentada, diminuída, etc. Já com str
nós só podemos manipular seu conteúdo para leitura.
Nesse post há uma explicação mais detalhada e outra referência interessante também: https://www.ameyalokare.com/rust/2017/10/12/rust-str-vs-String.html