Strenger i rust

Strenger i rust
En streng er definert som en sekvens av Unicode-tegn som er kodet til en UTF-8-byte-strøm. Strenger er et veldig 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 kjent som 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 til den ved hjelp av Push_str -metoden.

str.push_str ("linuxhint");

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

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

For å konvertere en streng bokstavelig til et strengobjekt:

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. Vi kan da iterere over skivene som vist:

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

Koden over skal returnere en individuell byterepresentasjon av strengverdiene.

Strengskiver

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

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

Ovennevnte 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. Et eksempel er som vist:

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

Husk at du ikke kan sammenkoble to & STR -verdier ved hjelp av + -operatøren.

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

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 rust og diskuterte hvordan vi kunne bruke dem i programmene våre.

Takk for at du leste!