パターンマッチングはC++23に入れようとしたがRustと比べて機能も弱すぎて失敗している
Rustのパターンマッチングはこんな感じで記述性や可読性を向上させている
fn slice_pattern(slice: &[(i32, i32)]) {
match slice {
[] => println!("空です"),
[(a, b)] => println!("要素は1つで({a},{b})です"),
[_, (123, b), ..] => println!("2つ目の前者が123なものは(123,{b})です"),
[.., next_last, _] => println!("その他の最後から2つ目の要素は{next_last:?}です"),
}
}
fn enum_pattern(shape: Shape) {
match shape {
Shape::Circle(r) => println!("半径{r}の円です"),
Shape::Rectangle(w, h) if w == h => println!("長さ{w}の正方形です"),
Shape::Rectangle(w, h) => println!("幅{w}高さ{h}の長方形です"),
x => println!("その他の図形{x:?}です"),
}
}
fn struct_pattern() {
let a = Foo { bar: 123, baz: 456, qux: 789 };
let b = Foo { baz: 555, ..a };
for Foo { bar, baz, qux } in &[a, b] {
println!("Foo: bar={bar}, baz={baz}, qux={qux}");
}
}
fn range_pattern(c: char) {
match c {
'0'..='9' => println!("数字({c})です"),
'a'..='z' | 'A'..='Z' => println!("アルファベット({c})です"),
_ => println!("その他の文字({c})です"),
}
}
結局C++とRustってどっちが良いの?
■ このスレッドは過去ログ倉庫に格納されています
748デフォルトの名無しさん
2023/03/30(木) 10:58:13.17ID:xP+9HiJo■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【北区小学校火災】女性教師「電気ストーブ近くで洗濯物を乾かしていた」 失火とみて捜査 燃えた残骸に“繊維片”付着 ★3 [Ailuropoda melanoleuca★]
- 「ケンタッキーは白米と合わない、一緒に食わない」キレる夫に妻がネットで問いかけ反応様々「唐揚げ定食の感覚」「私も出さない」 [muffin★]
- 【W杯】元ブラジル代表ロナウド氏「日本には簡単に勝てる」決勝T1回戦で対戦可能性…避けたいのは「オランダ」 [首都圏の虎★]
- 【速報】北海道・旭川女子高校生殺人 内田梨瑚被告控訴しない方針 懲役27年確定へ [首都圏の虎★]
- 仏南西部で44.3℃ 全土で死者40人、2歳と4歳児も犠牲に 英でも39℃予想 [首都圏の虎★]
- 歌舞伎町の有名ホスト4人 アメリカ入国を拒否され強制送還 「君達の職業では純粋な旅行として認められないから帰れ」と言われる [muffin★]
- 【緊急高市速報】かにぱん🦀製造一時中止 [469534301]
- 玉木雄一郎に弄ばれて自殺した高橋茉莉(27)、後を追って母親も自殺。高市よりヤバいだろ😰 [485187932]
- 玉木「国旗損壊罪に立法的事実無い」民民「予防的立法事実で罰則必要」自民党「ご時世で罰則」 [245325974]
- 【高市疑問】なんか謎の香港の捨て垢増えたと思わん? [419865925]
- 東京都北区の小学校火災、女性教員「電気ストーブで洗濯物を乾かしていた」 [377482965]
- (´・ω・`)底辺ブルーカラーだけど今年からヘルメットにもファンが付いたから涼しい