Menu
Coddy logo textTech

String vs. &str

Parte da seção Lógica & Fluxo do Journey de Rust da Coddy. Lição 54 de 66.

Rust possui dois tipos principais de strings que servem a propósitos diferentes: String e &str. Entender a diferença entre eles é crucial para trabalhar de forma eficaz com texto em Rust.

Uma String é uma string pertencente ao programa e alocada no heap que você pode modificar. Quando você cria uma String, seu programa é o proprietário desses dados e é responsável por gerenciar sua memória. Você pode aumentá-la, reduzi-la e alterar seu conteúdo porque ela é mutável quando declarada com mut.

let mut my_string = String::from("Hello");
my_string.push_str(" World"); // Isso funciona porque a String possui propriedade e é mutável

Em contraste, &str (pronunciado “fatia de string”) é uma visualização imutável e emprestada dos dados de uma string. Ele não é proprietário dos dados para os quais aponta — é apenas uma referência a algum conteúdo de string que existe em outro lugar. Literais de string como "Hello" são, na verdade, do tipo &str.

let my_slice: &str = "Hello World"; // Isso é um slice de string

Pense no String como ser o dono de um livro no qual você pode escrever e modificar, enquanto o &str é como pegar o livro de outra pessoa emprestado - você pode lê-lo, mas não pode alterá-lo. Essa distinção é fundamental para o sistema de ownership do Rust e ajuda a garantir a segurança de memória.

Experimente você mesmo

Esta lição não inclui um desafio de código.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo

Pratique por conta própria: Compilador de Rust online