Menu
Coddy logo textTech

String vs. &str

Fait partie de la section Logique & Flux du Journey Rust de Coddy. Leçon 54 sur 66.

Rust possède deux types de chaînes principaux qui servent des objectifs différents : String et &str. Comprendre la différence entre les deux est crucial pour travailler efficacement avec du texte en Rust.

Une String est une chaîne de caractères possédée et allouée sur le tas que vous pouvez modifier. Lorsque vous créez une String, votre programme possède ces données et est responsable de la gestion de sa mémoire. Vous pouvez l'agrandir, la réduire et modifier son contenu car elle est mutable lorsqu'elle est déclarée avec mut.

let mut my_string = String::from("Hello");
my_string.push_str(" World"); // Cela fonctionne car String est détenu et mutable

En revanche, &str (prononcé « string slice ») est une vue empruntée et immuable sur des données de chaîne. Il ne possède pas les données vers lesquelles il pointe : c’est simplement une référence vers un contenu de chaîne qui existe ailleurs. Les littéraux de chaîne comme "Hello" sont en fait de type &str.

let my_slice: &str = "Hello World"; // Ceci est une tranche de chaîne

Imagine que String possède un livre dans lequel tu peux écrire et que tu peux modifier, tandis que &str revient à emprunter le livre de quelqu’un d’autre : tu peux le lire, mais tu ne peux pas le changer. Cette distinction est fondamentale pour le système de propriété de Rust et contribue à garantir la sécurité de la mémoire.

Essayez vous-même

Cette leçon ne comprend pas de défi de code.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur Rust en ligne