Κοινή χρήση τεχνολογίας

[Rust] Εκμάθηση τύπου συμβολοσειράς

2024-07-12

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

Τι είναι το String

  • Υπάρχει μόνο ένας τύπος String στη βασική γλώσσα του Rust, και αυτός είναι το String slice.strσυνήθως θεωρείται ως&strδανεισμένος.
  • Ο τύπος συμβολοσειράς παρέχεται μέσω της τυπικής βιβλιοθήκης αντί να κωδικοποιείται απευθείας στη γλώσσα του πυρήνα. Είναι ένας αναπτυσσόμενος, μεταβλητός, κωδικοποιημένος τύπος UTF-8.
  • strκαιStringΌλα είναι κωδικοποιημένα utf-8.

Δημιουργία νέας συμβολοσειράς

  • Η συμβολοσειρά υλοποιείται στην πραγματικότητα τυλίγοντας ένα διάνυσμα τύπου byte.
  • Δημιουργήστε μια συμβολοσειρά χρησιμοποιώντας τη νέα μέθοδο:let mut s = String::new()
  • Δημιουργήστε μια συμβολοσειρά χρησιμοποιώντας τη μέθοδο to_string:
    let data = "initial contents";
    let s = data.to_string();
    let s = "initial contents".to_string();
    
    • 1
    • 2
    • 3
  • Δημιουργήστε μια συμβολοσειρά χρησιμοποιώντας τη μέθοδο String::from,let s = String::from("initial contents").

UpdateString

Προσθέστε συμβολοσειρά χρησιμοποιώντας push_str και push

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

push_strΗ μέθοδος δεν αλλάζει την ιδιοκτησία της συμβολοσειράς

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

Χρησιμοποιήστε τον τελεστή + ή τη μακροεντολή για να συνδέσετε συμβολοσειρές

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 δεν επιτρέπει τη συνδρομή για πρόσβαση σε μεμονωμένους χαρακτήρες μέσα σε μια συμβολοσειρά

Πώς να επαναλάβετε σε μια συμβολοσειρά

  • Μπορείτε να προσπελάσετε μεμονωμένους χαρακτήρες UniCode χρησιμοποιώντας τη μέθοδο χαρακτήρες. Χρησιμοποιήστε τη μέθοδο bytes για πρόσβαση σε κάθε byte.
for c in "Зд".chars() {
    println!("{c}");
}
  • 1
  • 2
  • 3