文字列リテラルに対して文字列を照合する

Nilesh Katuwal 2023年6月21日
  1. 錆びた文字列
  2. Rust の文字列リテラル
  3. 文字列を Rust で &str に変換する
文字列リテラルに対して文字列を照合する

このチュートリアルは、Rust の文字列リテラルに対して文字列を照合することについてです。

錆びた文字列

String 型は、文字列の内容を所有するため、最も人気のある文字列型です。 プリミティブ str と密接に関連しています。

Rust では、文字列は String&str の 2つのタイプに分類されます。

String はバイトのベクトル (Vec<u8>) として保存されますが、有効な UTF-8 シーケンスであることが保証されています。 String は、拡張可能で null で終了しないヒープ割り当て変数です。

&str は常に有効な UTF-8 シーケンスを指すスライス (&[u8]) であり、&[T] を使用して表示する方法と同様に、String を表示するために使用できます。 Vec<T> に変換します。

String::from を使用して、リテラル文字列から String を作成できます。

例:

let _welcome = String::from("Welcome to the world of Rust");

Rust の文字列リテラル

特殊文字を含む文字列リテラルを表現する方法は多数あります。 それらはすべて同様の &str; になります。 したがって、最も便利な形式を使用することをお勧めします。

エスケープする文字が多すぎる場合や、文字列を入力した方が便利な場合があります。 これは、生の文字列リテラルが使用されている場合です。

例:

fn main() {
    let rawString = r"This is an example of raw string: \x3F \u{211D}";
    println!("{}", rawString);

    let spec_char = r#"I learnt that: "Quotes can also be used!""#;
    println!("{}", spec_char);
}

出力:

This is an example of raw string: \x3F \u{211D}
I learnt that: "Quotes can also be used!"

生の文字列に引用符を追加する必要がある場合は、上記のコード行で使用したように、# のペアを追加する必要があります。

文字列リテラルには改行を含めることができます。 行の終わりは、改行 (U+000A) またはキャリッジ リターンと改行のペア (U+10000, U+10000) になります。

注目すべき例外は、エスケープされていない U+005C 文字が改行の直前にある場合に発生します。 次の行の U+005C 文字とすべての空白は U+000A に変換されません。

文字列を Rust で &str に変換する

String&str に変換するには、このように .as_str() を使用する必要があります。

例:

fn main() {
    let the_string = String::from("z");
    match the_string.as_str() {
    "x" => println!("Hello"),
    "y" => println!("There"),
    "z" => println!("Hello Rust!!!"),
    _ => println!("something else!"),
    }
}

出力:

Hello Rust!!!

.as str() は簡潔で、より堅牢な型チェックを強制します。

関連記事 - Rust String