English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Rust言語を学ぶ前に、まず文字列を出力する方法を学ぶ必要があります。これは、どの言語を学ぶ前に必須のスキルであり、コマンドラインに文字列を出力するのは、言語学習の段階でプログラムの結果を表現する唯一の方法です。
以前のHello, Worldプログラムでは、文字列を出力する方法についてお話ししてきましたが、全てを網羅することはできませんでした。特に、println!("Hello World")のprintlnの後ろに!シンボルがある理由について、皆さんは疑問に思っているかもしれません。Rustの関数の後ろに必ず感叹号を付ける必要があるのでしょうか?もちろん、そうではありません。printlnは関数ではなく、マクロルールです。マクロルールが何であるかについて深く掘り下げる必要はありません。後の章で専用に紹介します。これは次の学習に影響を与えません。
Rust でテキストを出力する方法は主に二種類あります:println!() と print!()。これらの「関数」はどちらもコマンドラインに文字列を出力する方法ですが、前者は出力の最後に改行符を追加します。これらの「関数」を使用して情報を出力する際には、最初の引数はフォーマット文字列であり、その後の可変引数はフォーマット文字列内の「占位符」に対応します。これは C 言語の printf 関数と非常に似ていますが、Rust ではフォーマット文字列の占位符は「%」ではありません。 + 文字「」の形式ではなく、{} 一対で表されます。
fn main() { let a = 12; println!("a is {}", a); }
以上のプログラムの出力結果は:
a is 12
a を二度出力する場合、どうすればいいのでしょうか:
println!("a is {}, a again is {}", a, a);
実際にはもっと良い書き方があります:
println!("a is {0}, a again is {0}", a);
{} 内に数字を置くと、その後の可変引数を配列としてアクセスできます。インデックスは 0 から始まります。
出力したい場合 { または } どうすればいいのでしょうか?フォーマット文字列では、 {{ と }} それぞれ { と } をエスケープします。ただし、他の一般的なエスケープシーケンスは C 言語のエスケープシーケンスと同じで、反スラッシュで始まります。
fn main() { println!("{{}}"); }
以上のプログラムの出力結果は:
{}