Freigeben über


Symbol- und Operatorenreferenz (F#)

Dieses Thema enthält eine Tabelle der Symbole und Operatoren, die in F# verwendet werden.

Tabelle der Symbole und Operatoren

Die folgende Tabelle enthält Beschreibungen der in F# verwendeten Symbole, Links zu Themen mit weiteren Informationen und kurze Erläuterungen von Verwendungszwecken des Symbols. Die Symbole sind entsprechend der Sortierung des ASCII-Zeichensatzes sortiert.

Symbol oder Operator

Links

Beschreibung

!

Referenzzellen (F#)

Berechnungsausdrücke (F#)

  • Dereferenziert eine Referenzzelle.

  • Gibt nach einem Schlüsselwort eine geänderte Version des von einem Workflow gesteuerten Verhaltens des Schlüsselworts an.

!=

Nicht zutreffend.

  • Wird in F# nicht verwendet. Verwenden Sie <> für Ungleichheitsoperationen.

"

Literale (F#)

  • Begrenzt eine Textzeichenfolge.

#

Compilerdirektiven (F#)

Flexible Typen (F#)

  • Ist einer Präprozessor- oder Compilerdirektive vorangestellt, z. B. #light.

  • Gibt bei Verwendung mit einem Typ einen flexiblen Typ an. Dies bedeutet, dass es sich um einen Typ oder einen beliebigen von ihm abgeleiteten Typ handelt.

$

Keine weiteren Informationen verfügbar.

  • Wird intern für bestimmte vom Compiler generierte Variablen- und Funktionsnamen verwendet.

%

Arithmetische Operatoren (F#)

Zitieren von Code (F#)

  • Berechnet den ganzzahligen Modulo.

  • Wird zum Zusammenführen von Zitaten verwendet.

&

Vergleichsausdrücke (F#)

  • Berechnet die Adresse eines änderbaren Werts. Wird bei der Interoperation mit anderen Sprachen verwendet.

  • Wird in AND-Mustern verwendet.

&&

Boolesche Operatoren (F#)

  • Berechnet die boolesche AND-Operation.

&&&

Bitweise Operatoren (F#)

  • Berechnet die bitweise AND-Operation.

'

Literale (F#)

Automatische Verallgemeinerung (F#)

  • Begrenzt ein Einzelzeichenliteral.

  • Gibt einen generischen Typparameter an.

``...``

Keine weiteren Informationen verfügbar.

  • Begrenzt einen Bezeichner, der andernfalls kein gültiger Bezeichner wäre, z. B. ein Schlüsselwort.

( )

Unit-Typ (F#)

  • Stellt den einzelnen Wert des unit-Typs dar.

(...)

Tupel (F#)

Überladen von Operatoren (F#)

  • Gibt die Reihenfolge an, in der Ausdrücke ausgewertet werden.

  • Begrenzt ein Tupel.

  • Wird in Operatordefinitionen verwendet.

(*...*)

  • Begrenzt einen Kommentar, der mehrere Zeilen umfassen kann.

(|...|)

Aktive Muster (F#)

  • Begrenzt ein aktives Muster. Wird auch als Bananenklammern bezeichnet.

*

Arithmetische Operatoren (F#)

Tupel (F#)

Maßeinheiten (F#)

  • Multipliziert bei Verwendung als binärer Operator die linke und die rechte Seite.

  • Gibt in Typen die paarweise Gruppierung in einem Tupel an.

  • Wird in Maßeinheittypen verwendet.

**

Arithmetische Operatoren (F#)

  • Berechnet die Potenz (x ** y bedeutet x mit der Potenz y).

+

Arithmetische Operatoren (F#)

  • Addiert bei Verwendung als binärer Operator die linke und die rechte Seite.

  • Gibt bei Verwendung als unärer Operator eine positive Menge an. (Formal wird mit unverändertem Vorzeichen der gleiche Wert erzeugt.)

,

Tupel (F#)

  • Trennt Typparameter oder die Elemente eines Tupels.

-

Arithmetische Operatoren (F#)

  • Subtrahiert bei Verwendung als binärer Operator die rechte Seite von der linken Seite.

  • Führt bei Verwendung als unärer Operator eine Negationsoperation aus.

->

Funktionen (F#)

Vergleichsausdrücke (F#)

  • Begrenzt in Funktionstypen Argumente und Rückgabewerte.

  • Ergibt einen Ausdruck (in Sequenzausdrücken). Entspricht dem yield-Schlüsselwort.

  • Wird in Vergleichsausdrücken verwendet.

.

Member (F#)

Primitive Typen (F#)

  • Greift auf einen Member zu und trennt einzelne Namen in einem vollqualifizierten Namen.

  • Gibt in Gleitkommazahlen ein Dezimaltrennzeichen an.

..

Schleifen: for...in-Ausdruck (F#)

  • Gibt einen Bereich an.

.. ..

Schleifen: for...in-Ausdruck (F#)

  • Gibt einen Bereich zusammen mit einem Inkrement an.

.[...]

Arrays (F#)

  • Greift auf ein Arrayelement zu.

/

Arithmetische Operatoren (F#)

Maßeinheiten (F#)

  • Dividiert die linke Seite (Zähler) durch die rechte Seite (Nenner).

  • Wird in Maßeinheittypen verwendet.

//

  • Gibt den Anfang eines einzeiligen Kommentars an.

///

XML-Dokumentation (F#)

  • Gibt einen XML-Kommentar an.

:

Funktionen (F#)

  • Trennt in einer Typanmerkung einen Parameter- oder Membernamen vom zugehörigen Typ.

::

Listen (F#)

Vergleichsausdrücke (F#)

  • Erstellt eine Liste. Das Element auf der linken Seite wird an die Liste auf der rechten Seite angefügt.

  • Wird beim Mustervergleich zum Trennen der Teile einer Liste verwendet.

:=

Referenzzellen (F#)

  • Weist einer Referenzzelle einen Wert zu.

:>

Umwandlung und Konvertierungen (F#)

  • Konvertiert einen Typ in einen Typ, der sich auf einer höheren Ebene der Hierarchie befindet.

:?

Vergleichsausdrücke (F#)

  • Gibt true zurück, wenn der Wert mit dem angegebenen Typ übereinstimmt. Gibt andernfalls false zurück (Typtestoperator).

:?>

Umwandlung und Konvertierungen (F#)

  • Konvertiert einen Typ in einen Typ, der sich auf einer niedrigeren Ebene der Hierarchie befindet.

;

Ausführliche Syntax (F#)

Listen (F#)

Datensätze (F#)

  • Trennt Ausdrücke (meist in ausführlicher Syntax verwendet).

  • Trennt Elemente einer Liste.

  • Trennt Felder eines Datensatzes.

<

Arithmetische Operatoren (F#)

  • Berechnet die Kleiner-als-Operation.

<<

Funktionen (F#)

  • Kombiniert zwei Funktionen in umgekehrter Reihenfolge. Die zweite Funktion wird zuerst ausgeführt (Rückwärtskompositionsoperator) ausgeführt.

<<<

Bitweise Operatoren (F#)

  • Verschiebt Bits in der Menge auf der linken Seite um die Anzahl der auf der rechten Seite angegebenen Bits nach links.

<-

Werte (F#)

  • Weist einer Variablen einen Wert zu.

<...>

Automatische Verallgemeinerung (F#)

  • Begrenzt Typparameter.

<>

Arithmetische Operatoren (F#)

  • Gibt true zurück, wenn die linke Seite ungleich der rechten Seite ist. Gibt andernfalls false zurück.

<=

Arithmetische Operatoren (F#)

  • Gibt true zurück, wenn die linke Seite kleiner oder gleich der rechten Seite ist. Gibt andernfalls false zurück.

<|

Funktionen (F#)

  • Übergibt das Ergebnis des Ausdrucks auf der rechten Seite an die Funktion auf der linken Seite (Rückwärtspipeoperator).

<@...@>

Zitieren von Code (F#)

  • Begrenzt ein typisiertes Codezitat.

<@@...@@>

Zitieren von Code (F#)

  • Begrenzt ein nicht typisiertes Codezitat.

=

Arithmetische Operatoren (F#)

  • Gibt true zurück, wenn die linke Seite gleich der rechten Seite ist. Gibt andernfalls false zurück.

==

Nicht zutreffend.

  • Wird in F# nicht verwendet. Verwenden Sie = für Gleichheitsoperationen.

>

Arithmetische Operatoren (F#)

  • Gibt true zurück, wenn die linke Seite größer oder gleich der rechten Seite ist. Gibt andernfalls false zurück.

>>

Funktionen (F#)

  • Setzt zwei Funktionen zusammen (Vorwärtskompositionsoperator).

>>>

Bitweise Operatoren (F#)

  • Verschiebt Bits in der Menge auf der linken Seite um die Anzahl der auf der rechten Seite angegebenen Stellen nach rechts.

>=

Arithmetische Operatoren (F#)

  • Gibt true zurück, wenn die rechte Seite größer oder gleich der linken Seite ist. Gibt andernfalls false zurück.

?

Parameter und Argumente (F#)

  • Gibt ein optionales Argument an.

  • Wird als Operator für dynamische Methoden- und Eigenschaftenaufrufe verwendet. Sie müssen eine eigene Implementierung bereitstellen.

? ... <- ...

Keine weiteren Informationen verfügbar.

  • Wird als Operator zum Festlegen von dynamischen Eigenschaften verwendet. Sie müssen eine eigene Implementierung bereitstellen.

@

Listen (F#)

Zeichenfolgen (F#)

  • Verkettet zwei Listen.

  • Gibt vor einem Zeichenfolgenliteral an, dass die Zeichenfolge wörtlich zu interpretieren ist und Escapezeichen nicht interpretiert werden.

[...]

Listen (F#)

  • Begrenzt die Elemente einer Liste.

[|...|]

Arrays (F#)

  • Begrenzt die Elemente eines Arrays.

[<...>]

Attribute (F#)

  • Begrenzt ein Attribut.

\

Zeichenfolgen (F#)

  • Dient als Escapezeichen für das nächste Zeichen. Wird für Zeichen- und Zeichenfolgenliterale verwendet.

^

Statisch aufgelöste Typparameter (F#)

Zeichenfolgen (F#)

  • Gibt Typparameter an, die nicht zur Laufzeit, sondern zur Kompilierzeit aufgelöst werden müssen.

  • Verkettet Zeichenfolgen.

^^^

Bitweise Operatoren (F#)

  • Berechnet die bitweise XOR-Operation.

_

Vergleichsausdrücke (F#)

Generika (F#)

  • Gibt ein Platzhaltermuster an.

  • Gibt einen anonymen generischen Parameter an.

`

Automatische Verallgemeinerung (F#)

  • Wird intern verwendet, um einen generischen Typparameter anzugeben.

{...}

Sequenzen (F#)

Datensätze (F#)

  • Begrenzt Sequenzausdrücke und Berechnungsausdrücke.

  • Wird in Datensatzdefinitionen verwendet.

|

Vergleichsausdrücke (F#)

  • Begrenzt einzelne Übereinstimmungen, einzelne Fälle von Unterscheidungs-Unions und Enumerationswerte.

||

Boolesche Operatoren (F#)

  • Berechnet die boolesche OR-Operation.

|||

Bitweise Operatoren (F#)

  • Berechnet die bitweise OR-Operation.

|>

Funktionen (F#)

  • Übergibt das Ergebnis der linken Seite an die Funktion auf der rechten Seite (Vorwärtspipeoperator).

~~

Überladen von Operatoren (F#)

  • Wird verwendet, um eine Überladung für den unären Negationsoperator zu deklarieren.

~~~

Bitweise Operatoren (F#)

  • Berechnet die bitweise NOT-Operation.

~-

Überladen von Operatoren (F#)

  • Wird verwendet, um eine Überladung für den unären Subtraktionsoperator zu deklarieren.

~+

Überladen von Operatoren (F#)

  • Wird verwendet, um eine Überladung für den unären Additionsoperator zu deklarieren.

Operatorrangfolge

In der folgenden Tabelle wird die Rangfolge von Operatoren und anderen Ausdrucksschlüsselwörtern in der Programmiersprache F# dargestellt, von der niedrigster Rangfolge bis zur höchsten Rangfolge. Die Assoziativität wird ggf. ebenfalls aufgeführt.

Operator

Assoziativität

as

Right

when

Right

| (Pipe)

Links

;

Right

let

Nicht assoziativ

function, fun, match, try

Nicht assoziativ

if

Nicht assoziativ

->

Right

:=

Right

,

Nicht assoziativ

or, ||

Links

&, &&

Links

<op, >op, =, |op, &op

Links

&&&, |||, ^^^, ~~~, <<<, >>>

Links

^op

Right

::

Right

:?>, :?

Nicht assoziativ

-op, +op, (binary)

Links

*op, /op, %op

Links

**op

Right

f x (Funktionsanwendung)

Links

| (Mustervergleich)

Right

Präfixoperatoren (+op, -op, %, %%, &, &&, !op, ~op)

Links

.

Links

f(x)

Links

f<types>

Links

F# unterstützt die benutzerdefinierte Operatorüberladung. Dies bedeutet, dass Sie eigene Operatoren definieren können. In der obigen Tabelle kann op eine beliebige gültige (möglicherweise leere) Sequenz von integrierten oder benutzerdefinierten Operatorzeichen sein. Daher können Sie anhand dieser Tabelle bestimmen, welche Sequenz von Zeichen für einen benutzerdefinierten Operator verwendet werden muss, um die gewünschte Rangfolge zu erhalten. . werden als vorangestellte Zeichen ignoriert, wenn der Compiler die Rangfolge bestimmt.

Siehe auch

Referenz

Überladen von Operatoren (F#)

Weitere Ressourcen

F#-Sprachreferenz

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Oktober 2010

Informationen zu Gleichheits- und Ungleichheitsoperatoren wurden hinzugefügt.

Informationsergänzung.

April 2011

Der Rangfolgentabelle wurden bitweise Operatoren hinzugefügt.

Kundenfeedback.