Teknologian jakaminen

[Rust] String Merkkijonotyypin oppiminen

2024-07-12

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

Mikä on String

  • Rustin ydinkielessä on vain yksi merkkijonotyyppi, ja se on String slice.stryleensä pidetään&strlainattu.
  • Merkkijonotyyppi tarjotaan vakiokirjaston kautta sen sijaan, että se olisi koodattu suoraan ydinkieleen. Se on kasvava, muuttuva, UTF-8-koodattu tyyppi.
  • strjaStringKaikki ovat utf-8-koodattuja.

Luo uusi merkkijono

  • Merkkijono toteutetaan itse asiassa käärimällä tavutyyppinen vektori.
  • Luo merkkijono uudella menetelmällä:let mut s = String::new()
  • Luo merkkijono käyttämällä to_string-menetelmää:
    let data = "initial contents";
    let s = data.to_string();
    let s = "initial contents".to_string();
    
    • 1
    • 2
    • 3
  • Luo merkkijono käyttämällä String::from-menetelmää,let s = String::from("initial contents").

UpdateString

Liitä merkkijono käyttämällä push_str ja push

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

push_strMenetelmä ei muuta merkkijonon omistajuutta

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

Käytä +-operaattoria tai makroa merkkijonojen ketjuttamiseen

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

Ruoste ei salli tilausmerkintöjen pääsyä merkkijonon yksittäisiin merkkeihin

Kuinka iteroida merkkijonon yli

  • Yksittäisiä UniCode-merkkejä voidaan käyttää chars-menetelmällä. Käytä tavumenetelmää päästäksesi jokaiseen tavuun.
for c in "Зд".chars() {
    println!("{c}");
}
  • 1
  • 2
  • 3