はじめに
こんにちは!ITスクールRareTECHにてCS(Customer Support)を担当している池村です。
今回はRustの学習を始める方向けの記事になります。私自身、Rustを触るのは初めてです。いつもは初学者向けの記事を量産しているのですが、自分の勉強にはあまりなっていないと感じていました。じゃあ自分も初めて触れる技術について記事にしていこうと考えた次第です。
対象読者
- PATHの概念がわかっている方
- Rust触ってみたい方
なぜRustなのか?
私は今までGoとPythonは触ってきました。
静的かつコンパイラの言語と、動的かつインタプリタの言語に触れてみたものの、メモリについてはそれほど詳しくありません。
もちろんメモリが何をしているかはある程度理解していますが、ガベージコレクションが搭載されている言語の場合、あまりメモリを意識する必要がないことがメリットでデメリットでもあります。メモリを管理する言語はCやC++などがあると思いますが、今から学習するなら新しい言語でメモリについて学びたいと思いました。
特にRustにある所有者という概念が面白そうと思いました。
結局はこの『面白そう』が強いです。
では早速環境構築してHello World
をしていきたいと思います。
今回はこちらの書籍をもとに進めていくことにしました。
私は新しい技術を学ぶ時は、本やUdemyなどでとりあえず簡単そうなものを選びます。簡単な本だと挫折しにくいというのが理由です。
そして少しずつ難しめな本に切り替えていきます。もちろん学習の過程でググりまくりますし、AIもバリバリ使っていきます。
インストール
私のMac環境は以下になります。
チップ | Apple M1 Pro |
---|---|
OS | macOS Sequoia バージョン15.1 |
PC名 | MacBook Pro 14インチ |
メモリ | 16GB |
ストレージ | 516GB |
そろそろ買い替え時期な気がしますね。(3年以上使用中)
では以下のリンクからRustをインストールしていきます。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
1) Proceed with standard installation (default - just press enter)
2) Customize installation
3) Cancel installation
>
インストール時に3択の質問がされます。
1) デフォルトの設定でインストールする
2) カスタム設定でインストールする
3) インストールをキャンセルする
>
カスタムは難易度高そうなので、一旦はデフォルトでインストールしてみます。
1と打ってEnterですね。
Rust is installed now. Great!
To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).
To configure your current shell, you need to source
the corresponding env file under $HOME/.cargo.
This is usually done by running one of the following (note the leading DOT):
. "$HOME/.cargo/env" # For sh/bash/zsh/ash/dash/pdksh
source "$HOME/.cargo/env.fish" # For fish
一旦シェルを再起動した方がいいと言われていますね。再起動して、PATHが通っていればOKなようです。
rustc --version
rustc 1.83.0 (90b35a623 2024-11-26)
環境構築の際にインストールされるものについて
インストールをするのは簡単ですが、実際はどういった設定がされているかは理解しておきましょう。
-
Cargo(カーゴ)と呼ばれるパッケージマネジャー
これはホームディレクトリに.cargo
というディレクトリが作られ、その中の.cargo/bin
の中にRustで使うコマンド類が準備されているようです。
-
rustup
これはRust本体のバージョンを変更したりできるコマンドですね。 -
rustc
これはRustでコンパイルするためのコマンドです。Rustはコンパイラ型の言語なので、機械語に翻訳するためのコマンドになります。 -
clippy
linterですね。要はコードのいい書き方や誤りを指摘してくれるものです。これ標準で入ってるんですね。面白い。 -
rustfmt
コードを整形してくれるformatterですね。これも標準搭載か〜。
Hello World!してみよう
シンプルにコンパイルから実行
早速ファイルを作って、Hello World!
をしてみます。
今回は適当なディレクトリを作成して、その中にファイルを作ってみます。私はVimを使いますが、基本的にエディタはなんでも大丈夫です。VSCodeでも使ってください。
fn main() {
println!("Hello World!") ;
}
ではコンパイルして実行ですね。この辺りはGoやJavaなどとも手順は一緒です。インタプリタ型の言語しか使ったことがない人は、以下の点を意識してみましょう。
- ファイルを作成
- 中身にコードを記述して保存
- コンパイルを行う
- 実行する
シェルでファイルを作成するなら
touch main.rs
か、Vimでファイルを作成しつつ開くことも可能です。
vim main.rs
VSCodeの場合はcode
コマンドのPATHを通している前提で以下のコマンドを叩きましょう。
code main.rs
コンパイル
rustc main.rs
実行
./main
これ以外にCargoを使った実行方法もあるので、そちらも見ていきましょう。
Cargoの利用
Cargoを使うときは、プロジェクトが作成されます。new
以降のプロジェクト名は適当で大丈夫です。今回はtest_hello
にします。要はパッケージを作っているんですね。
cargo new test_hello
このコマンドを叩くと以下のようなディレクトリが勝手に生成されます。
.
└── test_hello
├── Cargo.toml
└── src
└── main.rs
3 directories, 2 files
ではこのmain.rs
にコードを書いていきましょう。と、思ったらすでに書いてありました。勝手に書かれているとはびっくりです。
ここで勝手に作られているファイルはなんなのか見ていきましょう。
Cargo.toml
これはCargoの設定ファイルですね。TOML形式で書かれています。今回作られたRustのパッケージ情報が書かれているみたいですね。
[package]
name = "test_hello"
version = "0.1.0"
edition = "2021"
[dependencies]
.git
と.gitignore
これはGitHubなどで使われるディレクトリとファイルですね。Gitにpushしたくないものなどを書いておくことで、その通りにGitコマンドが動きます。
Cargoでの実行方法
cargo run
このコマンドを実行すると、コンパイルと実行を同時にしてくれます。
便利ですね。コンパイルと実行を別々にすることもできます。
コンパイル(ビルド)
cargo build
実行
target/debug/test_hello
おわりに
やはり新しい言語を触るのはワクワクしますね。
でもこれからどんどん難しくなると思うので、気合い入れて理解していきます。
同じようにRustを触り始めた人は一緒に頑張っていきましょう。
次の記事では標準搭載のformatterやlinterを使ってみようかなと思います。あとVimのRust用プラグインも調べて入れておかないとですね。
また次回の記事も見てくれると嬉しいです。