Qual é a diferença entre String e str em Rust?
Olá! Acabei de começar a aprender Rust e me deparei com uma confusão entre `String` e `str`. Em outras linguagens, como Python ou JavaScript, strings são apenas strings, mas aqui é uma verdadeira coleção.
Eu escrevi este código:
```rust
fn main() {
let greeting = "Hello"; // Isto é str?
let name = String::from("World"); // E isto é String?
println!("{} {}", greeting, name);
// Tentei modificar greeting
// greeting.push_str("!"); // Erro!
// Mas name pode ser modificado
name.push_str("!"); // Funciona
println!("{}", name);
}
```
Eu entendo que `String` pode ser modificada, mas `str` não. Mas por quê? Quando usar cada tipo? E o que é `&str`? Eu vi que em funções frequentemente escrevem `&str`, mas não entendo por quê.
Também notei que `str` não tem tamanho conhecido em tempo de compilação, enquanto `String` tem. Isso está relacionado ao fato de as strings serem armazenadas no heap? Ajude-me a entender, pois já estou ficando confuso.
<<>>
Diferença chave: propriet
No answers yet.
Faça login para deixar uma resposta
Blogs
Trabalhando com datas e horas em JavaScript: guia completo para Node.js