Uthenting av delstrenger

Rust:
Uthenting av delstrenger

Hvordan:

fn main() {
    let text = "Hei, Norge!";
    let start = 5;
    let end = 10;
    
    let substring = &text[start..end];
    
    println!("Utvalgt substring: {}", substring); // Skriver ut: Utvalgt substring: Norge
}

Output:

Utvalgt substring: Norge

Dypdykk:

I Rust er en streng en rekke av UTF-8 bytes. Det er viktig å huske på at å trekke ut substrings ikke nødvendigvis handler om antall tegn, men bytes.

Hvis vi ser tilbake, ser vi at mange eldre språk brukte enklere ASCII-tegn, hvor ett tegn var lik én byte. Dette gjorde substring-ekstraksjon ganske rett frem. Rust, derimot, støtter UTF-8, som betyr at ett tegn kan være flere bytes.

Det finnes alternativer til å bruke byte-indeks for å lage substrings. For eksempel metoder som chars() og split() i Rusts standard bibliotek, som håndterer Unicode-tegn korrekt. Men, disse metodene returnerer ofte iterators og ikke strenger direkte, så ekstra steg kan være nødvendige for å få en faktisk substring.

For ytelse og sikkerhet utfører Rust sjekker under kjøring for å sørge for at substring-ekstraktioner ikke ender midt i en gyldig UTF-8-sekvens, noe som kan medføre panikk i programmet. Det er derfor kritisk at programmererne håndterer Result eller Option typer når de arbeider med substrings, for å unngå å krasje programmet.

Se Også: