終焉の先へ…
はい、こんにちは。全人類の滅びを望むことで有名な僕です。今日もありとあらゆる負の感情を人類に向けていこうな。この世の全ての人間は敵です。味方はどこにもいないのです。だから、滅ぼそう。出来るだけ多くの人間を……。
ということで分割する必要性は全くないのですが冒頭の文章のネタは無限につくれるので、無限に薄めて楽しめるカルピスのような進行でやっていきます。このゆるゆる進行が苦手な方は自分でRust覚えようね。どうせ皆さんブクマするだけして読まないんでしょ(暴言)。だから僕が楽しく読めるようにエンタメ化させているのですよ(傲慢)。まあ目次を見るにChapter9まであるっぽいので全9回ぐらいで終了してしますが……。僕がこのコーナーの連載を飽きたらもっとハイペースで終わるかもしれませんw。
つづきやります
はい、まあいいや。続きということで条件分岐とループを見ていきます。
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、関数、ブロックの最後が ;
のない式であれば、戻り値として使用される」
へー。
という感じの内容です。こんなゆるゆる進行でよくある条件分岐とループネタやっても何かしら学びがあるの面白いですね。
ということで次回に続きます