はじめに
#NO IMAGEThe Rust Programming Language 日本語版 - The Rust Programming Language 日本語版
を読んでいる
- 昨日は逆から読んで後悔した
- あまりにもどうでもいい作業中に並行してやることにした
お勉強
#NO IMAGEパターン記法 - The Rust Programming Language 日本語版
ここから
メモ
#fn main() {
let p = Point { x: 0, y: 7 };
match p {
// x軸上の{}
Point { x, y: 0 } => println!("On the x axis at {}", x),
// y軸上の{}
Point { x: 0, y } => println!("On the y axis at {}", y),
// どちらの軸上でもない: ({}, {})
Point { x, y } => println!("On neither axis: ({}, {})", x, y),
}
}
-
お、これいいじゃん
-
これは分かりやすい
matchな気がしている -
Point { x, y }はその他すべてだが、マッチガードを使ってるからmatch内のprintln!で使う変数を定義してるんだな_にできたほうがわかりやすいんだが
-
なるほど、分配の意味がわかってきた
enum Message {
Quit,
Move { x: i32, y: i32 },
Write(String),
ChangeColor(i32, i32, i32),
}
fn main() {
let msg = Message::ChangeColor(0, 160, 255);
match msg {
Message::Quit => {
// Quit列挙子には分配すべきデータがない
println!("The Quit variant has no data to destructure.")
}
Message::Move { x, y } => {
println!(
// x方向に{}、y方向に{}だけ動く
"Move in the x direction {} and in the y direction {}",
x, y
);
}
// テキストメッセージ: {}
Message::Write(text) => println!("Text message: {}", text),
Message::ChangeColor(r, g, b) => {
println!(
// 色を赤{}, 緑{}, 青{}に変更
"Change the color to red {}, green {}, and blue {}",
r, g, b
)
}
}
}
Message::Write(text) => println!("Text message: {}", text),
Message::ChangeColor(r, g, b) => {
println!(
// 色を赤{}, 緑{}, 青{}に変更
"Change the color to red {}, green {}, and blue {}",
r, g, b
)
}
- ここか
- 変数を使ってる箇所
- 特段新しいことはしていない
まとめ
#- 思ったより便利な
matchが多いなーと思った- とはいえここで理解したいだけで実装するときはAIのレビューか調べ直しする気がする
- まあ知っていることがいいんだろうな
- とはいえここで理解したいだけで実装するときはAIのレビューか調べ直しする気がする
- 他のことと並行しながらやるのやっぱクリティ激下がるな
色々試してしまってるので進捗遅いが次はここ