コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

ラストツアー2

終焉の先へ…

はい、こんにちは。全人類の滅びを望むことで有名な僕です。今日もありとあらゆる負の感情を人類に向けていこうな。この世の全ての人間は敵です。味方はどこにもいないのです。だから、滅ぼそう。出来るだけ多くの人間を……。



ということで分割する必要性は全くないのですが冒頭の文章のネタは無限につくれるので、無限に薄めて楽しめるカルピスのような進行でやっていきます。このゆるゆる進行が苦手な方は自分でRust覚えようね。どうせ皆さんブクマするだけして読まないんでしょ(暴言)。だから僕が楽しく読めるようにエンタメ化させているのですよ(傲慢)。まあ目次を見るにChapter9まであるっぽいので全9回ぐらいで終了してしますが……。僕がこのコーナーの連載を飽きたらもっとハイペースで終わるかもしれませんw。

前回記事
inujini.hatenablog.com


つづきやります

はい、まあいいや。続きということで条件分岐とループを見ていきます。
1. if/else if/else

if 条件 {
        処理
    } else if 条件 {
        処理
    } else {
        処理
    }

if文はこんな感じです。 あっちの説明にもありますが特に面白いものがない。


2. ループ

// loop
// breakで抜ける
loop {
   break;
}

// loopはbreakで抜けて値を返すことができる
let v = loop {            
    break "戻り値";
};
println!("{}", v);

// while
while 条件 {
        処理
}

// for
for number in 0..5 {
        println!("{}", number);
}

ループ処理はこんなだそうです。for文がなんか特殊な感じあるけどもRubyでも似たようなのあるしなあってことであんまり目新しさを感じない…。

演算子 説明
.. 開始番号から終了番号手前まで
..= 開始番号から終了番号まで


3. match

    match x {
        0 => {
            処理
        }
        // 複数の値にマッチ
        1 | 2 => {
           処理
        }
        // 範囲にマッチ
        3..=9 => {
            処理
        }
        // マッチした数字を変数に束縛
        num @ 10..=100 => {
           println("{}", num);
        }
        // どのパターンにもマッチしない場合のデフォルトマッチが必須
        _ => {
            処理
        }

matchの使い方について。なんか書くことありますかね……。


4. ブロック式から値を返す

// Rust の三項式
let v = if x < 100 { -1 } else { 1 };

let v = {
        // ブロックのスコープは関数のスコープから分離されている
        let a = 1;
        let b = 2;
        a + b
};

if、match、関数、ブロックの最後が ; のない式であれば、戻り値として使用されるとのことです。この仕様を忘れると読めないコード出てきそうだなって感じました(小並感)。多分僕はこの仕様が出てきたとき、僕はこのことを忘れていると思うからもういちど言っておきますね。「if、match、関数、ブロックの最後が ; のない式であれば、戻り値として使用される」


へー。


という感じの内容です。こんなゆるゆる進行でよくある条件分岐とループネタやっても何かしら学びがあるの面白いですね。


ということで次回に続きます