#TheBook #Rust
https://doc.rust-jp.rs/book-ja/ch03-00-common-programming-concepts.html
## データ型
- 整数型
- `isize`と`usize`は動作しているコンピュータのアーキテクチャに依存する (32 or 64bit)
- 特に条件がなければ`i32`を使うのが最速で良い
- 浮動小数点型
- 特に条件がなければ`u64`を使うのが良い
- `f32`と`f64`は現代の[[CPU]]だとほぼ同じスピードなので
- 文字型
- `'a'`のようにシングルクォート
- `char`型
- [[Unicode]]のスカラー値を表す ([[ASCII]]ではない)
- [[タプル (Rust)|タプル]]型
- 型は同じでなくてもいい
- `tup.0`のようにindexアクセスできる
- [[配列 (Rust)|配列]]型
- 型は同じでなくてはならない
- 固定長 (宣言したらサイズを変更できない)
- メモリは[[スタック]]に確保する
## 関数
- 定義の位置は気にしない
- どっちが一般的かは気になるのだけど...
- [[仮引数]]と[[実引数]]
- 呼び出す方が使うのが[[実引数]] (実際の値) と覚えておく
- 関数は以下から構成される
- 最後の行は文か式
- それまでは文
- [[Rust]]は式指向言語
- 文は値を返さない
- [[C言語]]や[[Ruby]]は代入の戻り値として代入値を返す
- `x = y = 6` が成り立つということ
- `x = (y = 6)` であり
- `y = 6`は`6`を返すから、`x = 6`も同時に成り立つ
- 関数定義は文
- ブロック(`{}`)は式
- `let y = { x * 5 };` が成立する
## 制御フロー
- if式
- if文ではない