Teilen über


Symbol- und Operatorreferenz

Dieser Artikel enthält Tabellen, die die Symbole und Operatoren beschreiben, die in F# verwendet werden, und enthält eine kurze Beschreibung der einzelnen Symbole. Einige Symbole und Operatoren weisen zwei oder mehr Einträge auf, wenn sie in mehreren Rollen verwendet werden.

Kommentar-, Compilerdirektive und Attributsymbole

In der folgenden Tabelle werden Symbole im Zusammenhang mit Kommentaren, Compilerdirektiven und Attributen beschrieben.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
(*...*) Trennzeichen für einen Kommentar, der mehrere Zeilen umfassen kann.
// Gibt den Anfang eines einzeiligen Kommentars an.
/// XML-Dokumentation Gibt einen XML-Kommentar an.
# Compilerdirektiven Präfixe einer Präprozessor- oder Compilerdirektive.
[<...>] Attribute Trennzeichen für ein Attribut.

Zeichenfolgen- und Bezeichnersymbole

In der folgenden Tabelle werden Symbole im Zusammenhang mit Zeichenfolgen beschrieben.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
" Zeichenfolgen Trennzeichen für eine Textzeichenfolge.
@" Zeichenfolgen Startet eine kurzformatige Textzeichenfolge, die umgekehrte Schrägstriche und andere Zeichen enthalten kann.
""" Zeichenfolgen Schränkt eine dreifach zitierte Textzeichenfolge ein, die umgekehrte Schrägstriche, doppelte Anführungszeichen und andere Zeichen enthalten kann.
$" Interpolierte Zeichenfolgen Startet eine interpolierte Zeichenfolge.
' Literale Trennzeichen für ein einzelnes Zeichenliteral.
``...`` Trennzeichen für einen Bezeichner, der andernfalls kein rechtlicher Bezeichner ist, z. B. ein Sprachschlüsselwort.
\ Zeichenfolgen Escapes des nächsten Zeichens; wird in Zeichen- und Zeichenfolgenliteralen verwendet.

Arithmetische Operatoren

In der folgenden Tabelle werden die arithmetischen Operatoren beschrieben.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
+ Arithmetische Operatoren
  • Wenn sie als binärer Operator verwendet wird, werden die linken und rechten Seiten hinzugefügt.
  • Wenn sie als unärer Operator verwendet wird, wird eine positive Menge angegeben. (Formell erzeugt sie denselben Wert mit dem Vorzeichen unverändert.)
- Arithmetische Operatoren
  • Subtrahiert die rechte Seite von der linken Seite, wenn sie als binärer Operator verwendet wird.
  • Wenn sie als unärer Operator verwendet wird, wird ein Negationsvorgang ausgeführt.
* Arithmetische Operatoren

Tupel

Maßeinheiten
  • Bei Verwendung als binärer Operator multipliziert die linke und rechte Seite.
  • Gibt in Typen die Kopplung in einem Tupel an.
  • Wird in Maßeinheiten verwendet.
/ Arithmetische Operatoren

Maßeinheiten
  • Dividiert die linke Seite (Zähler) durch die rechte Seite (Nenner).
  • Wird in Maßeinheiten verwendet.
% Arithmetische Operatoren Berechnet den restzahligen Wert.
** Arithmetische Operatoren Berechnet den Exponentiationsvorgang (x ** y bedeutet x für die Leistung von y).

Vergleichsoperatoren

In der folgenden Tabelle werden die Vergleichsoperatoren beschrieben.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
< Arithmetische Operatoren Berechnet den Kleiner-als-Vorgang.
<> Arithmetische Operatoren Gibt zurück true , wenn die linke Seite nicht gleich der rechten Seite ist. Andernfalls wird "false" zurückgegeben.
<= Arithmetische Operatoren Gibt zurück true , wenn die linke Seite kleiner oder gleich der rechten Seite ist; andernfalls wird zurückgegeben false.
= Arithmetische Operatoren Gibt zurück true , wenn die linke Seite gleich der rechten Seite ist; andernfalls wird zurückgegeben false.
> Arithmetische Operatoren Gibt zurück true , wenn die linke Seite größer als die rechte Seite ist; andernfalls wird zurückgegeben false.
>= Arithmetische Operatoren Gibt zurück true , wenn die linke Seite größer oder gleich der rechten Seite ist; andernfalls wird zurückgegeben false.

Boolesche Operatoren

In der folgenden Tabelle werden die Symbole für arithmetische und boolesche Operatoren beschrieben.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
&& Boolesche Operatoren Berechnet den booleschen AND-Vorgang.
|| Boolesche Operatoren Berechnet den booleschen OR-Vorgang.

Bitweise Operatoren

In der folgenden Tabelle werden bitweise Operatoren beschrieben.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
&&& Bitweise Operatoren Berechnet den bitweisen AND-Vorgang.
<<< Bitweise Operatoren Verschiebt Bits in der Menge auf der linken Seite nach links um die Anzahl der auf der rechten Seite angegebenen Bits.
>>> Bitweise Operatoren Verschiebt Bits in der Menge auf der linken Seite nach rechts um die Anzahl der auf der rechten Seite angegebenen Stellen.
^^^ Bitweise Operatoren Berechnet den bitweisen exklusiven OR-Vorgang.
||| Bitweise Operatoren Berechnet den bitweisen OR-Vorgang.
~~~ Bitweise Operatoren Berechnet den bitweisen NOT-Vorgang.

Funktionssymbole und Operatoren

In der folgenden Tabelle werden die Operatoren und Symbole im Zusammenhang mit Funktionen beschrieben.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
-> Funktionen In Funktionsausdrücken wird das Eingabemuster vom Ausgabeausdruck getrennt.
|> Funktionen Übergibt das Ergebnis der linken Seite an die Funktion auf der rechten Seite (Vorwärtsrohroperator).
||> ( ||> )<'T1;'T2;'U-Funktion> Übergibt das Tupel von zwei Argumenten auf der linken Seite an die Funktion auf der rechten Seite.
|||> ( |||> )<'T1;'T2;'T3;'U-Funktion> Übergibt das Tupel von drei Argumenten auf der linken Seite an die Funktion auf der rechten Seite.
>> Funktionen Verfassen zwei Funktionen (Vorwärtskompositionsoperator).
<< Funktionen Verfasst zwei Funktionen in umgekehrter Reihenfolge; die zweite wird zuerst ausgeführt (Rückwärtskompositionsoperator).
<| Funktionen Übergibt das Ergebnis des Ausdrucks auf der rechten Seite an die Funktion auf der linken Seite (Rückwärtsrohroperator).
<|| ( <|| )<' T1,'T2;'U-Funktion> Übergibt das Tupel von zwei Argumenten auf der rechten Seite an die Funktion auf der linken Seite.
<||| ( <||| )<' T1,'T2;'T3;'U-Funktion> Übergibt das Tupel von drei Argumenten auf der rechten Seite an die Funktion auf der linken Seite.

Typsymbole und Operatoren

In der folgenden Tabelle werden Symbole im Zusammenhang mit Typanmerkungs- und Typtests beschrieben.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
-> Funktionen In Funktionstypen werden Argumente und Rückgabewerte getrennt, ergibt auch ein Ergebnis in Sequenzausdrücken.
: Funktionen Trennt in einer Typanmerkung einen Parameter oder Membernamen vom Typ.
:> Casting und Umwandlungen Wandelt einen Typ in einen Typ um, der in der Hierarchie höher ist.
:? Vergleichsausdrücke Gibt zurück true , wenn der Wert mit dem angegebenen Typ übereinstimmt (einschließlich eines Untertyps); andernfalls wird false der Wert zurückgegeben (Typtestoperator).
:?> Casting und Umwandlungen Wandelt einen Typ in einen Typ um, der in der Hierarchie niedriger ist.
# Flexible Typen Gibt bei Verwendung mit einem Typ einen flexiblen Typ an, der sich auf einen Typ oder einen seiner abgeleiteten Typen bezieht.
' Automatische Generalisierung Gibt einen generischen Typparameter an.
<...> Automatische Generalisierung Trennzeichentypparameter.
^ Parameter für statisch aufgelöste Typen

Zeichenfolgen
  • Gibt Typparameter an, die zur Kompilierungszeit aufgelöst werden müssen, nicht zur Laufzeit.
  • Verkettet Zeichenfolgen.
{} Klasse oder Datensatz Wenn sie mit dem type Schlüsselwort verwendet wird, wird eine Klasse oder ein Datensatz getrennt. Der Typ ist eine Klasse, wenn Member deklariert werden oder das class Schlüsselwort verwendet wird. Andernfalls ist es ein Datensatz.
{||} Anonymer Datensatz Gibt einen anonymen Datensatz an.

Symbole, die in Element-Nachschlage- und Segmentausdrücken verwendet werden

In der folgenden Tabelle werden zusätzliche Symbole beschrieben, die in Element-Nachschlage- und Datenschnittausdrücken verwendet werden.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
. Mitglieder Greift auf ein Mitglied zu und trennt einzelne Namen in einem vollqualifizierten Namen.
[...] oder .[...] Arrays

Indizierte Eigenschaften

Segmentausdrücke
Indiziert in einem Array, einer Zeichenfolge oder Auflistung oder übernimmt ein Segment einer Auflistung.

Symbole, die in Tupel, Liste, Array, Einheitenausdrücken und Mustern verwendet werden

In der folgenden Tabelle werden Symbole im Zusammenhang mit Tupeln, Listen, Einheitenwerten und Arrays beschrieben.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
( ) Unit-Typ Stellt den einzelnen Wert des Einheitentyps dar.
, Tupel Trennt die Elemente eines Tupels oder Typparameter.
:: Listen

Vergleichsausdrücke
  • Erstellt eine Liste. Das Element auf der linken Seite wird der Liste auf der rechten Seite vorangestellt.
  • Wird beim Musterabgleich verwendet, um die Teile einer Liste zu trennen.
@ Listen Verkettet zwei Listen.
[...] Listen Trennzeichen für die Elemente einer Liste.
[|...|] Arrays Trennzeichen für die Elemente eines Arrays.

Symbole, die in imperativen Ausdrücken verwendet werden

In der folgenden Tabelle werden zusätzliche Symbole beschrieben, die in Ausdrücken verwendet werden.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
<- Werte Weist einer Variablen einen Wert zu.
; Ausführliche Syntax

Trennt Ausdrücke (hauptsächlich in ausführlicher Syntax verwendet). Trennt auch Elemente einer Liste oder Felder eines Datensatzes.

Zusätzliche Symbole, die in Sequenzen und Berechnungsausdrücken verwendet werden

In der folgenden Tabelle werden zusätzliche Symbole beschrieben, die in Sequenzen und Berechnungsausdrücken verwendet werden.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
-> Sequenzen Ergibt einen Ausdruck (in Sequenzausdrücken); entspricht den Schlüsselwörtern do yield .
! Berechnungsausdrücke Gibt nach einem Schlüsselwort eine geänderte Version des Verhaltens des Schlüsselworts an, wie durch einen Berechnungsausdruck gesteuert.

Zusätzliche Symbole, die in Übereinstimmungsmustern verwendet werden

In der folgenden Tabelle werden Symbole im Zusammenhang mit dem Musterabgleich beschrieben.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
-> Vergleichsausdrücke Wird in Übereinstimmungsausdrücken verwendet.
& Mustervergleich
  • Berechnet die Adresse eines veränderbaren Werts für die Verwendung bei der Zusammenarbeit mit anderen Sprachen.
  • Wird in AND-Mustern verwendet.
_ Vergleichsausdrücke

Generics
  • Gibt ein Wildcardmuster an.
  • Gibt einen anonymen generischen Parameter an.
| Vergleichsausdrücke Schränkt einzelne Übereinstimmungsfälle, einzelne diskriminierte Union-Fälle und Enumerationswerte ein.

Zusätzliche Symbole, die in Deklarationen verwendet werden

In der folgenden Tabelle werden Symbole im Zusammenhang mit Deklarationen beschrieben.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
(|...|) Aktive Muster Trennzeichen für einen aktiven Musternamen. Auch als Bananenclips bezeichnet.
? Parameter und Argumente Gibt ein optionales Argument an.
~~ Operatorüberladung Dient zum Deklarieren einer Überladung für den Unary Negation-Operator.
~- Operatorüberladung Wird verwendet, um eine Überladung für den unären Minusoperator zu deklarieren.
~+ Operatorüberladung Wird verwendet, um eine Überladung für den Unary Plus-Operator zu deklarieren.

Zusätzliche Symbole, die in Anführungszeichen verwendet werden

In der folgenden Tabelle werden Symbole im Zusammenhang mit Codeangeboten beschrieben.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
<@...@> Codeangebote Trennzeichen für ein typiertes Code-Anführungszeichen.
<@@...@@> Codeangebote Schränkt ein nicht typisiertes Code-Anführungszeichen ab.
% Codeangebote Wird für das Splicing von Ausdrücken in eingegebene Code-Anführungszeichen verwendet.
%% Codeangebote Wird für das Splicing von Ausdrücken in nicht typisierte Codeanführungszeichen verwendet.

Dynamische Nachschlageoperatoren

In der folgenden Tabelle werden zusätzliche Symbole beschrieben, die in dynamischen Nachschlageausdrücken verwendet werden. Sie werden in der Regel nicht in der Routine-F#-Programmierung verwendet, und es werden keine Implementierungen dieses Operators in der F#-Kernbibliothek bereitgestellt.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
? Wird als Operator für dynamische Methoden- und Eigenschaftsaufrufe verwendet.
? ... <- ... Wird als Operator zum Festlegen dynamischer Eigenschaften verwendet.

Nullfähige Operatoren in Abfragen

Nullable Operators werden für die Verwendung in Abfrageausdrücken definiert. Die folgende Tabelle zeigt diese Operatoren.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
%? Nullwerte-Operatoren Berechnet den Rest der ganzen Zahl, wenn die rechte Seite einen nullfähigen Typ aufweist.
*? Nullwerte-Operatoren Multipliziert die linke und rechte Seite, wenn die rechte Seite einen nullfähigen Typ aufweist.
+? Nullwerte-Operatoren Fügt die linke und rechte Seite hinzu, wenn die rechte Seite einen nullfähigen Typ aufweist.
-? Nullwerte-Operatoren Subtrahiert die rechte Seite von der linken Seite, wenn die rechte Seite einen nullfähigen Typ aufweist.
/? Nullwerte-Operatoren Dividiert die linke Seite auf der rechten Seite, wenn die rechte Seite einen nullfähigen Typ aufweist.
<? Nullwerte-Operatoren Berechnet den Kleiner-als-Vorgang, wenn die rechte Seite einen Null-Typ aufweist.
<>? Nullwerte-Operatoren Berechnet den Vorgang "nicht gleich", wenn die rechte Seite einen nullfähigen Typ aufweist.
<=? Nullwerte-Operatoren Berechnet den Vorgang "kleiner als oder gleich", wenn die rechte Seite einen nullfähigen Typ aufweist.
=? Nullwerte-Operatoren Berechnet den Vorgang "gleich", wenn die rechte Seite einen nullfähigen Typ aufweist.
>? Nullwerte-Operatoren Berechnet den Vorgang "größer als", wenn die rechte Seite einen nullfähigen Typ aufweist.
>=? Nullwerte-Operatoren Berechnet den Vorgang "größer als oder gleich", wenn die rechte Seite einen nullfähigen Typ aufweist.
?>=, ?>, , ?<?<=, ?=, ?<>, ?+, , , ?-, , ?*?/ Nullwerte-Operatoren Entspricht den entsprechenden Operatoren ohne die ? präfix, wobei sich ein nullabler Typ auf der linken Seite befindet.
>=?, >?, , <?<=?, =?, <>?, +?, , , -?, , *?/? Nullwerte-Operatoren Entspricht den entsprechenden Operatoren ohne die ? Suffix, wobei sich ein nullabler Typ rechts befindet.
?>=?, ?>?, , ?<??<=?, ?=?, ?<>?, ?+?, , , ?-?, , ?*??/? Nullwerte-Operatoren Entspricht den entsprechenden Operatoren ohne die umgebenden Fragezeichen, bei denen beide Seiten nullable Typen sind.

Referenzzellenoperatoren (veraltet)

In der folgenden Tabelle werden Symbole im Zusammenhang mit Bezugszellen beschrieben. Die Verwendung dieser Operatoren generiert Empfehlungsmeldungen ab F# 6. Weitere Informationen finden Sie unter Referenznachrichten zu Zellvorgängen.

Symbol oder Operator Verknüpfungen BESCHREIBUNG
! Bezugszellen Leitet eine Bezugszelle ab.
:= Bezugszellen Weist einer Bezugszelle einen Wert zu.

Rangfolge der Operatoren

Die folgende Tabelle zeigt die Reihenfolge der Rangfolge von Operatoren und anderen Ausdrucksstichwörtern in F# in der Reihenfolge von der niedrigsten Rangfolge bis zur höchsten Rangfolge. Außerdem ist die Assoziativität aufgeführt, falls zutreffend.

Bediener Assoziativität
as Richtig
when Richtig
| (Rohr) Nach links
; Richtig
let Nicht assoziativ
function, , funmatchtry Nicht assoziativ
if Nicht assoziativ
not Richtig
-> Richtig
:= Richtig
, Nicht assoziativ
or, || Nach links
&, && Nach links
:>, :?> Richtig
< op, >op, op|, =op, &op, &,$

(einschließlich <<<, >>>, |||, &&&)
Nach links
^ Op

(einschließlich ^^^)
Richtig
:: Richtig
:? Nicht assoziativ
- op, +op Gilt für infix-Verwendungen dieser Symbole
* op, /op, %op Nach links
** Op Richtig
f x (Funktionsanwendung)

(einschließlich lazy x, assert x)
Nach links
| (Mustervergleich) Richtig
Präfixoperatoren (+op, -op, %, %%&, , &&!op, ~op) Nach links
. Nach links
f(x) Nach links
f< Arten> Nach links

F# unterstützt benutzerdefinierte Operatorüberladungen. Dies bedeutet, dass Sie Ihre eigenen Operatoren definieren können. In der vorherigen Tabelle kann es sich um eine beliebige gültige (möglicherweise leere) Abfolge von Operatorzeichen handeln, entweder integriert oder benutzerdefinierte. Daher können Sie mit dieser Tabelle bestimmen, welche Abfolge von Zeichen für einen benutzerdefinierten Operator verwendet werden soll, um die gewünschte Rangfolge zu erreichen. Führende . Zeichen werden ignoriert, wenn der Compiler die Rangfolge bestimmt.

Siehe auch