🦀

Rustの勉強2

に公開

こんにちは!kirigayaです。
今回は第2回です。
ん?と感じたことをまとめています。

標準ライブラリを使う時

  • プロシージャ形式
    モジュール名::関数名

    fn main(){
      print!("{}", str::len("abc"));
    }
    
  • オブジェクト形式(推奨らしい)
    オブジェクト名::メソッド名

    fn main(){
      print!("{}", "abc".len());
    }
    

条件式

{}波カッコで囲まれた部分をブロックと呼ぶ
書き方1

fn main(){
    let n = 5;
    if n == 3{
        print!("{}", n)
    }
    else {
        if n >= 5{
            print!("{}", "5以上")
        }
    }
}

書き方2else ifパターン

fn main(){
    let n = 5;
    if n == 3{
        print!("{}", n)
    }
    else if n >= 5 {
        print!("{}", "5以上")
        }
}

評価順序

fn main() {
    let mut limit = 4;
    let mut iter = 0;
    //6が評価される
    for n in 1..limit + 2 {
        limit -= 1;
        iter += 1;
        print!("繰り返し{}回目\n", iter);
        print!("limitは{}nは{}\n", limit, n);
    }
    print!("limitの最終結果{}\n", limit);
}

コードの評価順序

  1. 最初に limit が4で設定される
  2. ループが開始され、 n が1からスタート(範囲は1~6)
  3. まず、nが1のとき、limit が1減少し、iter が1増加
  4. "繰り返し1回目" と "limitは3nは1"が出力されます。
  5. 次のループでは、nが2になります。limit が再び1減少し、iter が1増加します。
  6. "繰り返し2回目" と "limitは2nは2" が出力されます。
  7. 最後のループでは、nが3になります。limit が再び1減少し、iter が1増加します。

ポイントとなるのは、limit の値がループ内で減少していくことです。limit がループの条件に影響を与えるため、ループの反復ごとに条件が変化し、評価手順が複雑になります。

岩田組

Discussion