はじめに
Hello, Worldへようこそ。この実験はRust Bookの一部です。LabEx で Rust のスキルを練習できます。
この実験では、最初の Rust プログラムを書きます。このプログラムは画面に「Hello, world!」という文字列を表示します。
This tutorial is from open-source community. Access the source code
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
Hello, Worldへようこそ。この実験はRust Bookの一部です。LabEx で Rust のスキルを練習できます。
この実験では、最初の Rust プログラムを書きます。このプログラムは画面に「Hello, world!」という文字列を表示します。
Rust をインストールしたので、最初の Rust プログラムを書く時が来ました。新しい言語を学ぶ際には、画面に「Hello, world!」という文字列を表示する小さなプログラムを書くのが慣例ですので、ここでも同じことをしましょう!
注:この本ではコマンドラインに関する基本的な知識を前提としています。Rust はコードの編集やツール、コードの保存場所について特定の要求をしません。なので、コマンドラインの代わりに統合開発環境(IDE)を使う方が好きな場合は、好きな IDE を使って構いません。現在、多くの IDE にはある程度の Rust サポートがあります。詳細は IDE のドキュメントを参照してください。Rust チームは
rust-analyzer
を通じて素晴らしい IDE サポートを可能にすることに焦点を当ててきました。詳細は付録 D を参照してください。
まずは、Rust コードを保存するディレクトリを作成しましょう。コードがどこにあるかは Rust にとっては問題ありませんが、この本の演習やプロジェクトでは、ホームディレクトリにproject
ディレクトリを作成し、そこにすべてのプロジェクトを保管することをおすすめします。
ターミナルを開き、以下のコマンドを入力して、project
ディレクトリと、その中にある「Hello, world!」プロジェクト用のディレクトリを作成します。
Linux、macOS、および Windows の PowerShell の場合、これを入力します。
cd ~/project
mkdir hello_world
cd hello_world
次に、新しいソースファイルを作成してmain.rs
と名付けます。Rust ファイルは常に.rs
拡張子で終わります。ファイル名に複数の単語を使う場合、慣例としてアンダースコアで区切ります。たとえば、helloworld.rs
ではなくhello_world.rs
を使います。
さて、先ほど作成したmain.rs
ファイルを開き、リスト 1-1 のコードを入力します。
ファイル名:main.rs
fn main() {
println!("Hello, world!");
}
リスト 1-1: 「Hello, world!」を表示するプログラム
ファイルを保存して、~/project/hello_world
ディレクトリのターミナルウィンドウに戻ります。Linux または macOS の場合、以下のコマンドを入力してファイルをコンパイルして実行します。
$ rustc main.rs
$./main
Hello, world!
オペレーティングシステムに関係なく、文字列「Hello, world!」がターミナルに表示されるはずです。この出力が見えない場合は、「トラブルシューティング」を参照して助けを求める方法を探してください。
もし「Hello, world!」が表示されたら、おめでとうございます!公式に Rust プログラムを書きました。あなたは Rust プログラマになりました。ようこそ!
この「Hello, world!」プログラムを詳細に見てみましょう。まずは、問題の最初の部分です。
fn main() {
}
これらの行は、main
という名前の関数を定義しています。main
関数は特別です。すべての実行可能な Rust プログラムでは、常に最初に実行されるコードです。ここで、最初の行は、パラメータを持たず、何も返さないmain
という名前の関数を宣言しています。パラメータがある場合、それらは丸括弧()
の中に入ります。
関数本体は{}
で囲まれています。Rust では、すべての関数本体の周りに波括弧が必要です。関数宣言と同じ行に始めの波括弧を置き、その間に 1 つのスペースを入れるのが良いスタイルです。
注:Rust プロジェクト全体で標準的なスタイルを守りたい場合は、
rustfmt
と呼ばれる自動フォーマッタツールを使って、コードを特定のスタイルにフォーマットできます(付録 D でrustfmt
についてもっと詳しく説明します)。Rust チームは、rustc
と同じように、このツールを標準の Rust 配布に含めています。なので、あなたのコンピュータにはすでにインストールされているはずです!
main
関数の本体には、次のコードがあります。
println!("Hello, world!");
この行が、この小さなプログラムのすべての作業を行っています。画面に文字列を表示します。ここで注意すべき重要な点は 4 つあります。
まず、Rust のスタイルは、タブではなく 4 つのスペースでインデントすることです。
第二に、println!
は Rust のマクロを呼び出します。関数を呼び出した場合、println
(!
なし)と入力します。第 19 章で Rust のマクロについてもっと詳しく説明します。今のところ、!
を使うことは、通常の関数ではなくマクロを呼び出していることを意味し、マクロは常に関数と同じ規則に従うわけではないことだけを知っておけば良いです。
第三に、"Hello, world!"
という文字列を見ることができます。この文字列を引数としてprintln!
に渡し、文字列が画面に表示されます。
第四に、行の末尾にセミコロン(;
)があります。これは、この式が終了し、次の式が始まる準備ができていることを示しています。ほとんどの Rust コードの行はセミコロンで終わります。
さっき新しく作成したプログラムを実行しましたので、このプロセスの各ステップを見てみましょう。
Rust プログラムを実行する前に、Rust コンパイラを使ってコンパイルする必要があります。rustc
コマンドを入力し、その後にソースファイルの名前を渡します。例えばこのようになります。
rustc main.rs
C や C++ の経験がある方は、これがgcc
やclang
に似ていることに気付くでしょう。正常にコンパイルされると、Rust はバイナリ実行可能ファイルを出力します。
Linux、macOS、および Windows の PowerShell では、シェルでls
コマンドを入力することで実行可能ファイルを確認できます。
$ ls
main main.rs
ここから、main
ファイルを実行します。例えばこのように。
./main
もしmain.rs
が「Hello, world!」プログラムであれば、この行はターミナルに「Hello, world!」を表示します。
Ruby、Python、または JavaScript のような動的言語に慣れている方は、コンパイルと実行を別々のステップとして行うことには馴染みがないかもしれません。Rust は事前コンパイル言語です。つまり、プログラムをコンパイルして実行可能ファイルを他人に渡すことができ、Rust をインストールしていなくても実行できます。.rb
、.py
、または.js
ファイルを他人に渡した場合、それぞれ Ruby、Python、または JavaScript の実装がインストールされている必要があります。しかし、それらの言語では、プログラムをコンパイルして実行するためには 1 つのコマンドだけで済みます。言語設計においては、すべてトレードオフです。
単純なプログラムであればrustc
でコンパイルするだけで大丈夫ですが、プロジェクトが大きくなるにつれて、すべてのオプションを管理し、コードを共有しやすくするための手段が必要になります。次に、Cargo ツールを紹介します。これは、現実世界の Rust プログラムを書くのに役立ちます。
おめでとうございます!Hello, World の実験を完了しました。あなたのスキルを向上させるために、LabEx でさらに多くの実験を行って練習してください。