2016-12-30 12 views
2

構造フィールドと一致しない可能性がありますか?たとえば、このコード:あなたの質問はどんな意味がありませんRustの構造体フィールドのマッチング方法は?

y is true 
+1

非ブール型フィールドではどのように動作するのですか?たとえば、これは 'struct Person {surname:String、age:u8}'でどのように動作しますか? –

答えて

5

;:

struct Point { 
    x: bool, 
    y: bool, 
} 

let point = Point { x: false, y: true }; 

match point { 
    point.x => println!("x is true"), 
    point.y => println!("y is true"), 
} 

が生じるはずです私は非常に

に特に章、再読み込み The Rust Programming Languageお勧めします

if point.x { println!("x is true") } 
if point.y { println!("y is true") } 

:普通ifステートメントを使用します

これを読んだら、point.xはパターンではないので、マッチアームの左側で使用することはできません。

+0

ありがとう – maku

10

錆は構造フィールドと一致しますか?

これは、Destructuringの章のRustブックに記載されています。

match point { 
    Point { x: true, .. } => println!("x is true"), 
    Point { y: true, .. } => println!("y is true"), 
    _ => println!("something else"), 
} 
関連する問題