Freigeben über


Ausdrücke

Im Kern sind Q# Ausdrücke entweder Wertliterale oder Bezeichner, wobei Bezeichner entweder auf lokal deklarierte Variablen oder auf global deklarierte Aufrufables verweisen können (es gibt derzeit keine globalen Konstanten in Q#). Operatoren, Kombinationszeichen und Modifizierer können verwendet werden, um diese Bezeichner in einer größeren Vielfalt von Ausdrücken zu kombinieren.

  • Operatoren sind in einem Sinne nichts anderes als dedizierte Syntax für bestimmte aufrufbare Elemente.

    Obwohl Q# noch nicht ausdrucksstark genug ist, um die Funktionen der einzelnen Operatoren formell in Form einer rückrufbaren Deklaration zu erfassen, sollte dies in Zukunft behoben werden.

  • Modifizierer können nur auf bestimmte Ausdrücke angewendet werden. Mindestens ein Modifizierer kann auf Ausdrücke angewendet werden, die entweder

    • Bezeichner
    • Arrayelementzugriffsausdrücke
    • Benannte Elementzugriffsausdrücke
    • ein Ausdruck in Klammern, der mit einem einzelnen Element-Tupel identisch ist. Weitere Informationen finden Sie unter Singleton-Tupel-Äquivalenz). Sie können dem Ausdruck entweder vorangestellt (Präfix) oder dem Ausdruck folgen (Postfix). Sie sind daher spezielle unäre Operatoren, die enger als Funktions- oder Vorgangsaufrufe binden, aber weniger eng als jede Art von Elementzugriff. Konkret sind Functors Präfixmodifizierer, während der Unwrap-Operator ein Postfixmodifizierer ist.
  • Funktions-, Vorgangs- und Elementzugriffsaufrufe können als spezieller Operatortyp betrachtet werden, ähnlich wie Modifizierer. Alle unterliegen den gleichen Einschränkungen, wenn sie angewendet werden können; wir bezeichnen sie als Kombinatoren.

Der Abschnitt zu Rangfolge und Zuordnung enthält eine vollständige Liste aller Operatoren sowie eine vollständige Liste aller Modifizierer und Kombinatoren.