【Rust入門】概要や環境構築、プログラムの作成方法を詳しく解説!

近年、C言語やC++に代わる高速で安全性の高いプログラミング言語としてRustの注目が高まっています。C言語やC++の代わりにRustを使うメリットにはどのようなものがあるのでしょうか。

この記事は、Rustの言語に関する基礎知識の解説や環境構築、プログラムの作成方法などを解説するRust入門者向けの記事です。

【Rust入門】そもそもRustとは?

RustはMozilla社が支援するオープンソースのプログラミング言語であり、2015年に登場した比較的新しいプログラミング言語です。MicrosoftやGoogleがOS開発にRustを採用するなど、C言語やC++に代わる新たなカーネル開発のプログラミング言語として注目されています。

Rustでできること

RustはC言語やC++でこれまで開発されてきたOSコアの開発で利用されることが多い言語です。先程も軽く触れたとおり、Microsoftは2019年11月からWindowsの開発にRustを採用しており、GoogleもAndroid OSの開発にRustを採用すると発表しています。また、Linuxカーネルの開発にRustを採用する動きもあり、まさにC言語やC++に代わる新たな言語と言えるでしょう。

それ以外にも、組み込み系の開発やWebアプリケーションのバックエンド開発も可能です。

 

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

入門者がRustを使うメリットとは?

Rustは「効率的で信頼できるソフトウェアを誰もが作れる言語」として公開されています。Rustは実行速度が速く、安全性が高いという特徴を持つ言語です。加えて、新しい言語であるため多くの言語を参考にした扱いやすい文法であり、入門者にも最適な言語と言えるでしょう。特に、OS開発や組み込み系の開発に携わりたいと考えている方にはおすすめの言語です。

実行速度の速さ

Rustは仮想マシンを使用せずに直接機械語にコンパイルできるため、C言語に匹敵する実行速度が実現できます。加えて、プログラム実行時に不要となったメモリ領域を自動で開放する「ガーベジコレクション」の機能がない代わりに、独自のメモリ管理機能を持っています。

C言語やC++では手動でメモリを管理する必要がありますが、ガーベジコレクション機能も含めてこれらは実行速度の低下につながる要因です。Rustは独自のメモリ管理機能によって実行速度の速さと安全性まで実現できます。

安全性の高さ

C言語やC++を利用する際には、安全性の面でメモリ管理が特に重要視されます。セキュリティ上の脆弱性の多くはメモリ利用に関するバグに起因するとされており、C言語やC++におけるOS開発での弱点の一つとなっていました。

Rustでは、独自のメモリ管理機能によってメモリ安全性を実現しています。具体的には、所有権・借用・ライフタイムという概念を持ち、自動的なメモリ管理によってメモリリークやリソースリークなどのバグを防ぐことが可能です。

メモリの安全性はコンパイル時にチェックされ、MicrosoftやGoogleはこの安全性の高さを最も評価し、Rustを採用しています。

 

いざ、Rust入門!具体的なやり方を解説!

それでは、実際にRustを触ってみましょう。 ここでは、環境構築から簡単なプログラムを作成するまでの具体的な手順を紹介します。

Rust入門1 インストール

RustのインストールはWindowsとMacでそれぞれ手順が異なります。

また、Windowsの場合は「Visual Studio C++ Build tools」も併せてインストールする必要がある点にも注意してください。

【Windowsでのインストール手順】

1.公式サイトにアクセスし、インストーラをダウンロード

 ※32bit/64bitはご利用の環境に合わせて選択してください

Rustインストーラ画面

2.インストーラを実行した際に次の画面が表示された場合は2-1へ、表示されなかった場合は3へ進んでください。

 ※「Visual Studio C++ Build tools」がインストールされていない場合に表示される

「Visual Studio C++ Build tools」がインストールされていない場合に表示される画面

2-1.「Microsoft C++ Build Tools」のサイトを開き、「Build Toolsのダウンロード」をクリックしてください。

 ※Microsoft C++ Build Toolsは、Visual Studioを利用せずに必要なライブラリ類をインストールできるツール

Build Toolsダウンロード画面

2-2.インストーラを実行し、「続行」をクリックしてください。

Build Toolsインストーラ実行後の画面

2-3.ワークロードタブで「C++によるデスクトップ開発」にチェックを入れ、右ペインで「Windows 10 SDK」にチェックが入っていることを確認してください。

Build Toolsワークロード画面

2-4.言語パックタブで「日本語」「英語」にチェックを入れ、インストールボタンをクリックしてください。

Build Tools言語パックタブ

2-5.インストール完了後、Rustのインストール画面に戻り、「y」を入力してください。

インストール完了後のRustインストール画面

3.インストール設定画面で「1」を入力し、Rustのインストールを開始してください。

 ※Rustのバージョンやインストール場所を変更したい場合は「2」を入力してください。

Rustインストール設定画面

4.「Rust is installed now. Great!」と表示されればインストール終了です。

Rustインストール終了後画面

5.コマンドプロンプトで「cargo –version」と入力し、バージョンが表示されれば正常にインストールが完了していることを確認できます。

Rustコマンドプロンプト

【Macでのインストール手順】

Macの場合は、ターミナルを開いて以下のコマンドを実行することでインストーラを実行できます。

コマンド実行後はWindowsでのインストールと同様の手順で進めます。

ここでも、インストールオプションはデフォルトの「1」を選択しました。

Macターミナル画面

必要なライブラリのインストールが始まり、「Rust is installed now. Great!」と表示されればインストール完了です。

Rustインストール後のターミナル画面

新たにターミナルを開き直し「cargo –version」を入力してバージョンが表示されることを確認してください。

ターミナルバージョン表示画面

Rust入門2 Hello World!

プログラミング言語の最初の一歩「Hello World!」をRustで実行してみましょう。

1.任意の場所にディレクトリを作成して、カレントディレクトリを変更してください。

カレントディレクトリ変更画面

2.「cargo new hello_world」を実行してください。

「cargo new hello_world」実行画面

3.カレントディレクトリを「hello_world」に変更し、「cargo run」を実行。「Hello, world!」と表示されることを確認してください。

「Hello World!」実行画面

Rustは新たにプロジェクトを作成した時点で、Hello Worldと表示されるコードが自動的に作成されます。ソースコードはプロジェクトを作成したディレクトリ内の「src」の中に「main.rs」として保存されています。

「Hello World!」プロジェクト画面

「println!」の中身を変えることで、出力結果が変更できるため試してみましょう。

「Hello RUST!」プロジェックと画面
「Hello RUST!」コマンドプロンプト画面

Rust入門3 簡単なプログラムを作成

ここからはもう少し踏み込んだコーディングを行いましょう。変数や条件分岐、繰り返し処理をRustで行ってみます。

以下のコードは変数を定義し、条件分岐によって出力する内容を変更するものです。

変数、条件分岐コード画面

Rustではさまざまな基本データ型をサポートしており、次に上げるようなタイプがあります。

  • 符号付き整数:i8,i16,i32,i64,i128,isize
  • 符号なし整数:u8,u16,u32,u64,u128,usize
  • 浮動小数点:f32,f64
  • 文字型:char
  • 論理値:bool        など

コードの中では明示的に変数numをi32(32ビットの符号付き整数)として宣言していますが、宣言をしない場合は自動的に変数の型が決められます。整数はi32、浮動小数点はf64がデフォルトです。

それぞれの変数に格納された数値を表示し、合計値も表示するコードとなっています。加えて、if文を使った条件分岐によって合計値が1000未満の場合は「total under 1000」、1000以上の場合は「total over 1000」と表示するようにしており、今回は1000以上となるため実行結果は次のようになります。

合計値を表示する画面

続いて、繰り返し処理を使って九九の表を作成するコードを見ていきましょう。今回の繰り返し処理ではfor in文を使用しています。for in文を使用すれば特定の数値の繰り返しが簡単に記載可能です。

ここでは「1..10」が「1~9」の繰り返しであることを表し、その数値をxに代入しながら繰り返し処理を行うことを意味しています。また、次のような書き方でも「1~9」の繰り返しとして処理できます。

xとyの二重ループの中で、計算した結果をprint!を使ってフォーマットを整えながら出力。出力するフォーマットの意味としては、「変数numを2桁で表示し、桁数が足りない場合には0を追加する」となります。

最後に、print!は出力結果に改行を含まないため、yのループが終わった後に改行を入れる意味で「println!();」があります。

繰り返し処理コード画面

これを実行すると、九九の表が表示されることが確認できるでしょう。

九九の表コマンドプロンプト画面

変数、条件分岐、繰り返し処理はプログラミングの基本であり、Rustではこのように簡単に実装できます。あくまでも一例であり、その他にもさまざまなコーディング手法があるため、実際に触りながら覚えていきましょう。

 

Rustは近年C言語やC++の代わりとして注目されているプログラミング言語です。これまでC言語やC++で開発されてきたOSコアや組み込み系の開発だけでなく、Webアプリケーションのバックエンド開発も可能な言語となっています。

Rustの特徴は実行速度の速さと安全性の高さです。C言語などに匹敵する実行速度を持ちながら、メモリ安全性の高さが評価され、MicrosoftやGoogleでもOS開発に利用されています。

今後、OS開発や組み込み系の開発では特に需要が伸びると考えられます。C言語などと比べても新しい言語であり、多くのプログラミング言語の記法から良いところを取り入れているため、入門者にも最適な言語と言えるでしょう。

これからプログラミング言語を学びたい、将来的にOS開発や組み込み系の開発に携わりたいと考えている方は、ぜひRustを使ってみてはいかがでしょうか。