Hvordan bruke strenger i rust

Hvordan bruke strenger i rust

En streng er definert som en sekvens av Unicode-tegn som er kodet inn i UTF-8-byte-strømmen. Strenger er et grunnleggende konsept i alle programmeringskunnskaper, da de er en kilde til store problemer eller stor produktivitet.

Denne artikkelen vil utforske hvordan du jobber med strenger i rustprogrammeringsspråket og bestemme hva som gjør strenger i rust annerledes.

Ruststrenger

Det er to typer strenger i rust:

  1. Strenglitteraler og str
  2. Strengobjekter (streng)

Ruststreng bokstavelig

Ruststrengen bokstavelig er en strengskive som alltid refererer til en sekvens av UTF-8-tegn. Vi bruker det hovedsakelig når vi kjenner verdien av strengen på kompileringstidspunktet. Det kan brukes som en visning i et strengobjekt. Strenglitteraler er statiske som standard, noe som betyr at de ikke muterer.

Vi kan erklære en streng bokstavelig i rust ved å lage en variabel med eller uten type inferens. Følgende eksempel viser to gyldige strenglitteraler i rust:

La str = "Hello World";
Let Str: & Str = "Hello World;

Begge er like, men den ene gir typen mens den andre ikke gjør det.

Ruststrengobjekt

Et strengobjekt refererer til en heapallokert og dynamisk vektor av byte. Som strenglitteraler trenger ikke streng som er objektivert å være null-terminert. Strengobjektet opprettes vanligvis ved å konvertere en strengskive til strengobjekter ved hjelp av TO_String -metoden.

For å lage et tomt og voksende strengobjekt, kan vi bruke den nye metoden som vist:

La Mut str = String :: new ();

Når du har en tom streng, kan du legge til en verdi ved hjelp av Push_str -metoden.

str.push_str ("linuxhint");

For å ha tildelt en streng, kan vi gjøre følgende:

la navn = streng :: fra ("Winnie");

For å konvertere en streng bokstavelig til et strengobjekt, kan vi gjøre følgende:

La str = "Linuxhint".to_string ();

Strengindeksering

Strenger i rust støtter ikke direkte indeksering. Et eksempel er som vist:

la streng = "linuxhint";
Println!("", streng [0]);

Den beste måten å overvinne dette på er å behandle strengen som en sekvens av individuelle byte. Deretter kan vi iterere over skivene som vist:

la streng = "linuxhint";
for C i streng.as_bytes ()
Println!("", c);

Den forrige koden skal returnere en individuell byte -representasjon av strengverdiene.

Strengskiver

Du kan få en skive av en streng ved å bruke skiveren bokstavelig som vist nedenfor:

fn main ()
la streng = "linuxhint";
Println!("", & streng [0… 5]);

Det forrige eksemplet skal returnere strengen som er tilgjengelig på de spesifiserte forskyvningene:

Linux

Strengkonturasjon

Du kan sammenkoble en streng bokstavelig og et strengobjekt ved hjelp av + -operatøren. Følgende eksempel er gitt nedenfor:

fn main ()
La str1: & str = "hallo";
La str2: & str = "verden";
La streng = str1.to_string () + str2;
Println!("", streng);

Merk: Du kan ikke sammenkoble to & STR -verdier ved hjelp av + -operatøren.

Hvis du har to strengobjekter, kan du sammenkoble dem begge ved å bruke & operatøren som følger:

fn main ()
La str1 = "Hei".to_string ();
La str2 = "verden".to_string ();
La streng = str1.to_string () + &str2;
Println!("", streng);

Dette er på grunn av Deref -tvang som lar en streng tvinge A & Str.

Konklusjon

I denne guiden utforsket vi begrepet strenger i rustprogrammeringsspråket og diskuterte hvordan vi kunne bruke dem i programmene våre. Vi fremhevet de to forskjellige typene strenger som er strenglitteralene og STR og strengobjektene. I tillegg diskuterte vi de forskjellige metodene for å ha tildelt en streng. Vi håper du fant denne artikkelen nyttig. Sjekk de andre Linux -hint -artiklene for flere tips og informasjon.