Progrust Library.

// dictionary

文字列リテラル.

文字列リテラルは"こんにちは"のようにダブルクォートで囲んで書く固定の文字列で、式としての型は文字列スライス&'static strです。文字列データは静的メモリに配置され、プログラム終了まで有効な参照として扱えます。シングルクォートで書く文字型のリテラルとは区別されます。

fn main() {
    let greeting = "いらっしゃいませ\nご注文をどうぞ"; // \n は改行のエスケープ
    let path = r"C:\Users\hanako"; // 生文字列: \ をそのまま書ける
    let quote = r#"店員は"ありがとうございました"と言いました"#;
    println!("{greeting}\n{path}\n{quote}");
}
Playgroundで開く

リテラルの種類

記法 名称
"..." 文字列リテラル &'static str
r"..." / r#"..."# 生文字列リテラル &'static str
b"..." / br"..." バイト文字列リテラル &'static [u8; N]
c"..." / cr"..." C文字列リテラル &'static CStr

生文字列(raw string)はエスケープを一切処理しません。本文に"を含めたいときはr#"..."#のように両端の#を同数ずつ増やします。バイト文字列はASCII文字とエスケープだけを並べたもので、u8整数型の一種)の配列型への参照になります。C文字列(Rust 1.77で安定化・2021エディション以降)は末尾にNUL終端が自動で付き、C言語のライブラリ連携で使います。

補足

使えるエスケープの一覧
エスケープ 意味
\n / \r / \t 改行 / 復帰 / タブ
\\ / \" / \' \ / " / ' そのもの
\0 NUL文字
\x41 16進2桁の文字コード(通常の文字列では0x7Fまで。
バイト文字列・C文字列では\xFFまで可)
\u{3042} 16進最大6桁のUnicodeコードポイント

また、行末に\を置くと、直後の改行から次の非空白文字までのすべての空白(空行を含む)が文字列に含まれず、長いリテラルをソースコード上だけ改行できます。複数の改行がまとめてスキップされる挙動は将来変更される可能性があるため、依存しないことが推奨されています。

この辞書が使われているページ

backlinks 5

  1. 辞書文字列スライス
  2. 辞書文字列型
  3. 動かして学ぶRustプログラミング問題集 › 第1章 コンソール出力と変数
  4. 動かして学ぶRustプログラミング問題集 › 第2章 基本の型と演算
  5. 動かして学ぶRustプログラミング問題集 › 第6章 文字列とベクタ