#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文ではない