技術共有

【Rust】String String型学習

2024-07-12

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

文字列とは

  • Rust のコア言語には String 型が 1 つだけあり、それが String スライスです。str通常は次のようにみなされます&str借りた。
  • String 型は、コア言語に直接エンコードされるのではなく、標準ライブラリを通じて提供され、拡張可能で変更可能な UTF-8 エンコード型です。
  • strそしてStringすべてutf-8でエンコードされています。

新しい文字列を作成する

  • 文字列は実際にはバイト型のベクトルをラップすることで実装されます。
  • 新しいメソッドを使用して文字列を作成します。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").

更新文字列

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 文字には、chars メソッドを使用してアクセスできます。各バイトにアクセスするには、bytes メソッドを使用します。
for c in "Зд".chars() {
    println!("{c}");
}
  • 1
  • 2
  • 3