Rust勉強メモ1
7月16日に開催されたRustのもくもく会に参加したので、勉強したことをメモしておきます。 基本的にはソシムさんから刊行された『手を動かして考えればよくわかる 高効率言語 Rust 書きかた・作りかた』を動かしながら読み進めています。
インストール
curl -- proto 'https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
パス
export PATH="$PATH:$HOME/.cargo/bin"
バージョンの確認
rustc --version
バージョンのアップデート
rustup update
VSCodeをインストール。拡張機能でRustが非推奨になっており、代わりにrust-analyzerをインストール。
Hello Worldのコード
fn main(){ println!("Hello World") }
rustc hello.rs
実行
./hello
Rustは必ずmain関数を記述する必要がある。このmain関数をエントリーポイントという。 Rustには末尾に「!」をつけることがある。これはマクロであることを示している。
文字列に埋め込むには、{}の中に変数を置き換えて表示する Rustでは変数への代入を「値を変数に束縛する」というらしい。
fn main(){ let price = 300; println!("ガムの値段は{}円", price) }
四則演算の問題。答えを見ずになんとなくで書いたコード
fn main(){ let bike = 80.0; let train = 300.0; let moon = 384400.0; println!("バイクの場合は{}日です", moon / bike / 24.0); }
適当に書いた割には合っていたようですが、「train変数が使われていないよ」という警告が出る(おもしろ)。
warning: unused variable: `train` --> q1.rs:3:9 | 3 | let train = 300.0; | ^^^^^ help: if this is intentional, prefix it with an underscore: `_train` | = note: `#[warn(unused_variables)]` on by default warning: 1 warning emitted
実行結果
バイクの場合は200.20833333333334日です
Rustは型に厳しい言語なので、整数と実数は明確に区別される。
■for文の書き方
for 変数 in 開始地 .. 終値 +1 { 処理 }
■if文の書き方
if 条件1 { 処理1 } else if 条件2 { 処理2 } else { 処理3 }
■print!とprintln!の違い
print! = 改行がない
println! = 改行がある
■変数
letで宣言した値はイミュータブルな変数になる
let 変数名 = 値;
ミュータブルな変数にするにはmutをつける
let mut 変数名 = 値;
Rustでは不変な変数が基本となっている。 余計にmutをつけると、以下のように警告が帰ってくる
fn main(){ let pc = 98000.0; println!("A社は{}円です", pc * 0.8 +1200.0); println!("B社は{}円です", pc * 0.9); }
warning: variable does not need to be mutable