Menu
Coddy logo textTech

String a &str

Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 54 z 66.

Rust ma dwa główne typy łańcuchów znaków, które służą różnym celom: String i &str. Zrozumienie różnicy między nimi jest kluczowe dla efektywnej pracy z tekstem w Rust.

String to własny, alokowany na stercie ciąg znaków, który możesz modyfikować. Gdy tworzysz String, Twój program jest właścicielem tych danych i odpowiada za zarządzanie ich pamięcią. Możesz go powiększać, zmniejszać i zmieniać jego zawartość, ponieważ jest mutowalny, gdy zadeklarujesz go z użyciem mut.

let mut my_string = String::from("Hello");
my_string.push_str(" World"); // To działa, ponieważ String ma właściciela i można go modyfikować

Natomiast &str (wymawiane „wycinek ciągu znaków”) to pożyczony, niemodyfikowalny widok na dane tekstowe. Nie jest właścicielem wskazywanych danych — to tylko odwołanie do treści ciągu znaków, która istnieje gdzie indziej. Literały tekstowe, takie jak "Hello", mają w rzeczywistości typ &str.

let my_slice: &str = "Hello World"; // To jest wycinek łańcucha znaków

Wyobraź sobie, że String to książka, którą posiadasz i w której możesz pisać oraz wprowadzać zmiany, natomiast &str przypomina pożyczoną od kogoś książkę — możesz ją czytać, ale nie możesz jej zmieniać. To rozróżnienie ma fundamentalne znaczenie dla systemu własności w Rust i pomaga zapewnić bezpieczeństwo pamięci.

Spróbuj swoich sił

Ta lekcja nie zawiera wyzwania z kodem.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Rust online