Rustをインストールしたので、最初のRustプログラムを作成しましょう。新しい言語を学ぶときは、テキストHello, world!
を画面に印刷する小さなプログラムを書くのが伝統的であるため、ここでも同じことを行います。
注:この本は、コマンドラインに関する基本的な知識があることを前提としています。Rustは、編集やツール、またはコードの場所について特別な要求をしません。したがって、コマンドラインの代わりに統合開発環境(IDE)を使用したい場合は、お好きなIDEを自由に使用してください。現在、多くのIDEである程度のRustがサポートされています。詳細については、IDEのドキュメントを確認してください。最近、Rustチームは優れたIDEサポートの実現に注力しており、その面で急速に進歩しています。
プロジェクトディレクトリの作成
まず、Rustコードを保存するディレクトリを作成します。コードがどこにあるかはRustには関係ありませんが、この本の演習とプロジェクトでは、ホームディレクトリにプロジェクトディレクトリを作成し、そこにすべてのプロジェクトを保持することをお勧めします。
ターミナルを開き、次のコマンドを入力して、プロジェクトディレクトリと「Hello、world!」のディレクトリを作成します。プロジェクトディレクトリ内のプロジェクト。
Linux、macOS、およびWindows上のPowerShellの場合、次のように入力します。
$ mkdir ~/projects
$ cd ~/projects
$ mkdir hello_world
$ cd hello_world
まずはプロジェクトフォルダを作成する。
Rust>>hello_worldを作成
Rustプログラムの作成と実行
次に、新しいソースファイルを作成し、それをmain.rsと呼びます。Rustファイルは常に.rs拡張子で終わります。ファイル名に複数の単語を使用している場合は、アンダースコアを使用してそれらを区切ります。たとえば、helloworld.rsではなく hello_world.rsを使用します。
次に、作成したmain.rsファイルを開き、リスト1-1のコードを入力します。
ファイル名:main.rs
fn main() {
println!("Hello, world!");
}
ファイルを保存して、ターミナルウィンドウに戻ります。LinuxまたはmacOSでは、次のコマンドを入力してファイルをコンパイルして実行します。
Rust>>hello_world>>main.rs
メインの関数はmain.rsに書く
$ rustc main.rs
$ ./main
Hello, world!
オペレーティングシステムに関係なく、文字列Hello, world!
は端末に出力されます。この出力が表示されない場合は、インストールセクションの「トラブルシューティング」の部分に戻ってヘルプを参照してください 。
Hello, world!
印刷した場合は、おめでとうございます!あなたはRustプログラムを公式に作成しました。それはあなたをRustプログラマーにします—ようこそ!
さびプログラムの解剖学
「Hello、world!」で何が起こったのかを詳しく見てみましょう。プログラム。パズルの最初のピースは次のとおりです。
fn main() {
}
これらの行は、Rustの関数を定義します。このmain
関数は特別です。これは、実行可能なすべてのRustプログラムで実行される最初のコードです。最初の行main
は、パラメーターを持たず、何も返さないという名前の関数を宣言しています。パラメータがある場合、それらは括弧内に入り()
ます。
また、関数本体は中括弧で囲まれていることに注意してください{}
。Rustは、すべての関数本体の周りにこれらを必要とします。関数宣言と同じ行に開始中括弧を配置し、間に1つのスペースを追加することをお勧めします。
Rustプロジェクト全体で標準スタイルを維持したい場合は、呼び出さrustfmt
れた自動フォーマッターツールを使用して、特定のスタイルでコードをフォーマットできます。Rustチームは、このツールをのような標準のRustディストリビューションに含めているrustc
ので、すでにコンピューターにインストールされているはずです。詳細については、オンラインドキュメントを確認してください。
main
関数内には次のコードがあります。
この行は、この小さなプログラムのすべての作業を実行します。画面にテキストを印刷します。ここで注意すべき4つの重要な詳細があります。
まず、Rustスタイルは、タブではなく4つのスペースでインデントすることです。
次に、println!
Rustマクロを呼び出します。代わりに関数を呼び出すと、println
(なしで!
)と入力されます。Rustマクロについては、第19章で詳しく説明します。今のところ、!
手段を使用すると、通常の関数ではなくマクロを呼び出すことを意味し、マクロが常に同じルールに従うとは限らないことを知っておく必要があります。機能。
!まーくを関数の後ろにつけるとマクロになる。マクロと関数は別物らしい。
第三に、"Hello, world!"
文字列が表示されます。この文字列を引数として。に渡すprintln!
と、文字列が画面に出力されます。
4番目に、行をセミコロン(;
)で終了します。これは、この式が終了し、次の式を開始する準備ができていることを示します。Rustコードのほとんどの行は、セミコロンで終わります。
コンパイルと実行は別々のステップです
新しく作成したプログラムを実行したばかりなので、プロセスの各ステップを調べてみましょう。
Rustプログラムを実行する前に、rustc
コマンドを入力し、次のようにソースファイルの名前を渡すことにより、Rustコンパイラを使用してプログラムをコンパイルする必要があります。
$ rustc main.rs
CまたはC ++のバックグラウンドをお持ちの場合、これはgcc
またはに似ていることに気付くでしょうclang
。正常にコンパイルされた後、Rustはバイナリ実行可能ファイルを出力します。
Linux、macOS、およびWindows上のPowerShellでは、ls
シェルにコマンドを入力することで実行可能ファイルを表示できます。LinuxとmacOSでは、2つのファイルが表示されます。Windows上のPowerShellを使用すると、CMDを使用した場合と同じ3つのファイルが表示されます。
$ ls
main main.rs
これは、拡張子が.rsのソースコードファイル、実行可能ファイル(Windowsではmain.exe、他のすべてのプラットフォームではmain)、およびWindowsを使用している場合は、拡張子が.pdbのデバッグ情報を含むファイルを示しています。ここから、次のようにmainまたはmain.exeファイルを実行します。
$ ./main # or .\main.exe on Windows
main.rsが「Hello、world!」だった場合 プログラムでは、この行がHello, world!
端末に出力されます。
Ruby、Python、JavaScriptなどの動的言語に精通している場合は、プログラムを個別のステップとしてコンパイルして実行することに慣れていない可能性があります。Rustは事前コンパイル型言語です。つまり、プログラムをコンパイルして実行可能ファイルを他の人に渡すことができ、Rustをインストールしなくても実行できます。誰かに.rb、.py、または .jsファイルを渡す場合は、Ruby、Python、またはJavaScriptの実装を(それぞれ)インストールする必要があります。ただし、これらの言語では、プログラムをコンパイルして実行するために必要なコマンドは1つだけです。すべてが言語設計のトレードオフです。
rustc
単純なプログラムの場合は、コンパイルするだけで問題ありませんが、プロジェクトが大きくなるにつれて、すべてのオプションを管理し、コードを簡単に共有できるようにする必要があります。次に、実際のRustプログラムを作成するのに役立つCargoツールを紹介します。