The King's Museum

ソフトウェアエンジニアのブログ。

Rust の環境構築と Hello World

Rust を始めるので環境構築と Hello World から。

言語の Overview とかも見ようかと思ったけどとりあえず手を動かせる環境を作る。

インストール - The Rust Programming Language 日本語版

インストール

自分のプライベートマシンは Windows なので Windows 版のところ見ようかと思ったけど、WSL 使ってるから普通に Linux のやつで。 (WSL 1 だとこの手は使えないっぽい)

$ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

↓ が表示されなくてずっと待ってたけど Enter 押したら表示された。

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation

1 を選んで標準インストール

Rust is installed now. Great!

rustup ツールをインストールされ、コンパイラがインストールされたらしい。

これに加えて、なんらかのリンカが必要になるでしょう。

なるほど。でも普通の WSL2 なら大丈夫だろう。 最近、コンパイルとリンクが必要な言語触ってなかったからなんだか懐かしい。

エディタ

個人的なコーディングは IntelliJ IDEA を使ってるのでそれに Rust プラグインをインストールしてつかう。

IntelliJ Rust: IntelliJベースIDE用のオープンソースRustプラグイン

ある程度、ちゃんとした機能がありそう。 そのうちデバッガとかも使ってみようかな。

Hello World

Hello World を書いて実行する。

Hello, World! - The Rust Programming Language 日本語版

fn main() {
    println!("Hello, World!");
}

関数定義は fn か。 println!! は副作用があることを示したりするのだろうか。

コンパイルして実行。リンカは大丈夫だったみたい。

$ rustc helloworld.rs
$ ./helloworld
Hello, World!

気になったところの備忘録。

main関数は特別です: 常に全ての実行可能なRustプログラムで走る最初のコードになります。

entry point が main 関数。

まず、Rustのスタイルは、タブではなく、4スペースでインデントするということです。

4 space indent。

2番目にprintln!はRustのマクロを呼び出すということです。代わりに関数を呼んでいたら、 println(!なし)と入力されているでしょう。Rustのマクロについて詳しくは、第19章で議論します。 とりあえず、!を使用すると、普通の関数ではなくマクロを呼んでいるのだということを知っておくだけでいいでしょう。

へー。副作用の意味かな、と思ったけどマクロなんだね。 println という関数はあるかと思ったけど関数はないらしい。

error[E0423]: expected function, found macro `println`
 --> helloworld.rs:2:5
  |
2 |     println("Hello, World!");
  |     ^^^^^^^ not a function
  |
help: use `!` to invoke the macro
  |
2 |     println!("Hello, World!");
  |            +

error: aborting due to previous error

For more information about this error, try `rustc --explain E0423`.

とりあえず最初の一歩はこんなところでおしまい。

次回

次はパッケージ管理(?)の Cargo をやってく。

(c) The King's Museum