Looking for rust Keywords? Try Ask4Keywords

RustMusterabgleich


Syntax

  • _ // Platzhaltermuster, passt zu nichts¹
  • ident // Bindungsmuster, passt alles an und bindet es an ident ¹
  • ident @ pat // wie oben, aber erlauben Sie es weiter, was gebunden ist
  • ref ident // Bindungsmuster, passt alles und bindet es an eine Referenz ident ¹
  • ref mut ident // Bindungsmuster, passt alles und bindet es auf ein veränderbares Bezugs ident ¹
  • & pat // stimmt mit einer Referenz überein ( pat ist daher keine Referenz, sondern der Schiedsrichter) ¹
  • & mut pat // wie oben mit einer veränderlichen Referenz¹
  • CONST // stimmt mit einer benannten Konstante überein
  • Struct { Feld1 , Feld2 } // stimmt mit einem Strukturwert überein und dekonstruiert ihn, siehe den Hinweis zu Feldern¹
  • EnumVariant // entspricht einer Aufzählungsvariante
  • EnumVariant ( pat1 , pat2 ) // stimmt mit einer Aufzählungsvariante und den entsprechenden Parametern überein
  • EnumVariant ( pat1 , pat2 , .., patn ) // wie oben, überspringt jedoch alle außer den ersten, zweiten und letzten Parametern
  • ( pat1 , pat2 ) // stimmt mit einem Tupel und den entsprechenden Elementen überein¹
  • ( pat1 , pat2 , .., patn ) // wie oben, überspringt jedoch alle Elemente außer dem ersten, zweiten und letzten Element¹
  • lit // stimmt mit einer Literalkonstante überein (char, numerische Typen, Boolean und String)
  • pat1 ... pat2 // stimmt mit einem Wert in diesem (einschließlich) Bereich überein ( Zeichen- und numerische Typen)

Bemerkungen

Bei der Dekonstruktion eines Strukturwerts sollte das Feld entweder die Form field_name oder field_name : pattern . Wird kein Muster angegeben, erfolgt eine implizite Bindung:

let Point { x, y } = p;
// equivalent to
let Point { x: x, y: y } = p;

let Point { ref x, ref y } = p;
// equivalent to
let Point { x: ref x, y: ref y } = p;

1: Unbestreitbares Muster

Musterabgleich Verwandte Beispiele