Ich habe diesen Code in einem Beispielcode gefunden. Es funktioniert gut, aber ich habe einen Linter Fehler, der besagt, dass es als eine if-let-Anweisung strukturiert sein sollte.Wie lautet die Syntax für eine if-let-Anweisung?
match event {
glutin::Event::WindowEvent { event, .. } => match event {
glutin::WindowEvent::Closed => return glutin::ControlFlow::Break,
glutin::WindowEvent::Resized(w, h) => gl_window.resize(w, h),
_ =>(),
},
_ =>()
}
Dies war mein Versuch, sie zu restrukturieren:
if let _ = glutin::Event::WindowEvent { event, .. } {
match event {
glutin::WindowEvent::Closed => return glutin::ControlFlow::Break,
glutin::WindowEvent::Resized(w, h) => gl_window.resize(w, h),
_ =>(),
}
}
Hoppla, das ist ein Syntaxfehler. Was wäre der richtige Weg, um die Warnmeldung zu löschen?
Nachdem ich den Code genauer betrachtet hatte, erkannte ich, dass ich die Syntax nicht verstehe. glutin::Event::WindowEvent { event, .. }
sieht aus wie die Syntax zum Erstellen einer neuen Instanz von WindowEvent
, aber wie kann das in einer Match-Anweisung erlaubt sein?
Auch, was bedeutet die ..
? Ich kenne ..Default::default()
, aber nicht den doppelten Punkt an sich.
Es ist umgekehrt: 'Wenn Glutin lassen :: Ereignis :: Window {event, ..} = Ereignis {...}' –
Thanks @ E_net4! Eine Antwort, die die Syntax erklärt, wird sehr geschätzt. – BonsaiOak
[** Eine ** Frage per Post, bitte] (https://meta.stackexchange.com/q/39223/281829). – Shepmaster