Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |
|
- |
Arithmetische Operatoren |
|
* |
Arithmetische Operatoren Tupel Maßeinheiten |
|
/ |
Arithmetische Operatoren Maßeinheiten |
|
% |
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 |
|
{} |
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 |
|
@ |
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 |
|
_ |
Vergleichsausdrücke Generics |
|
| |
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.