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 をやってく。