Condivisione della tecnologia

[Rust] String Apprendimento del tipo stringa

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Cos'è String

  • Esiste un solo tipo String nel linguaggio principale di Rust, ed è String slice.strsolitamente considerato come&strpreso in prestito.
  • Il tipo String viene fornito tramite la libreria standard anziché codificato direttamente nel linguaggio principale. È un tipo con codifica UTF-8 espandibile e modificabile.
  • strEStringTutti sono codificati utf-8.

Crea nuova stringa

  • La stringa viene effettivamente implementata racchiudendo un vettore di tipo byte.
  • Crea una stringa utilizzando il nuovo metodo:let mut s = String::new()
  • Crea una stringa utilizzando il metodo to_string:
    let data = "initial contents";
    let s = data.to_string();
    let s = "initial contents".to_string();
    
    • 1
    • 2
    • 3
  • Crea una stringa utilizzando il metodo String::from,let s = String::from("initial contents").

UpdateString

Aggiungi la stringa utilizzando push_str e push

let mut s = String::from("foo");
s.push_str("bar");
// s is foobar
  • 1
  • 2
  • 3

push_strIl metodo non cambia la proprietà della stringa

let mut s = String::from("lo");
s.push('l');
// s is lol
  • 1
  • 2
  • 3

Utilizza l'operatore + o la macro di formato per concatenare le stringhe

let s1 = String::from("Hello, ");
let s2 = String::from("world!");
let s3 = s1 + &s2; // note s1 has been moved here and can no longer be used
  • 1
  • 2
  • 3
let s1 = String::from("tic");
let s2 = String::from("tac");
let s3 = String::from("toe");

let s = format!("{s1}-{s2}-{s3}");
  • 1
  • 2
  • 3
  • 4
  • 5

Rust non consente la sottoscrizione per accedere ai singoli caratteri all'interno di una stringa

Come eseguire un'iterazione su una stringa

  • È possibile accedere ai singoli caratteri UniCode utilizzando il metodo chars. Utilizzare il metodo byte per accedere a ciascun byte.
for c in "Зд".chars() {
    println!("{c}");
}
  • 1
  • 2
  • 3