Schlüsselwortreferenz

Dieses Thema enthält Links zu Informationen zu allen F#-Sprachschlüsselwörtern.

F#-Schlüsselworttabelle

Die folgende Tabelle enthält alle F#-Schlüsselwörter in alphabetischer Reihenfolge sowie kurze Beschreibungen und Links zu relevanten Themen, die weitere Informationen enthalten.

Schlüsselwort Link BESCHREIBUNG
abstract Mitglieder

Abstrakte Klassen
Gibt eine Methode an, die entweder über keine Implementierung in dem Typ verfügt, in dem sie deklariert ist, oder die virtuell ist und über eine Standardimplementierung verfügt.
and let Bindungen

Datensätze

Mitglieder

Einschränkungen
Wird in sich gegenseitig rekursiven Bindungen und Datensätzen, in Eigenschaftendeklarationen und mit mehreren Einschränkungen für generische Parameter verwendet.
as Klassen

Mustervergleich
Wird verwendet, um dem aktuellen Klassenobjekt einen Objektnamen zu geben. Wird auch verwendet, um einem ganzen Muster innerhalb einer Muster übereinstimmung einen Namen zu geben.
assert Assertionen Wird verwendet, um Code während des Debuggens zu überprüfen.
base Klassen

Vererbung
Wird als Name des Basisklassenobjekts verwendet.
begin Ausführliche Syntax Gibt in der ausführlichen Syntax den Anfang eines Codeblocks an.
class Klassen Gibt in der ausführlichen Syntax den Anfang einer Klassendefinition an.
default Mitglieder Gibt eine Implementierung einer abstrakten Methode an. wird zusammen mit einer abstrakten Methodendeklaration verwendet, um eine virtuelle Methode zu erstellen.
delegate Delegaten Wird verwendet, um einen Delegaten zu deklarieren.
do do-Bindungen

Schleifen: for...to-Ausdruck

Schleifen: for...in-Ausdruck

Schleifen: while...do-Ausdruck
Wird in Schleifenkonstrukten oder zum Ausführen von imperativem Code verwendet.
done Ausführliche Syntax Gibt in der ausführlichen Syntax das Ende eines Codeblocks in einem Schleifenausdruck an.
downcast Umwandlung und Konvertierungen Wird verwendet, um in einen Typ zu konvertieren, der in der Vererbungskette niedriger ist.
downto Schleifen: for...to-Ausdruck Wird in for einem Ausdruck verwendet, wenn in umgekehrter Reihenfolge gezählt wird.
elif Bedingte Ausdrücke: if...then...else Wird in bedingter Verzweigung verwendet. Eine Kurzform von else if .
else Bedingte Ausdrücke: if...then...else Wird in bedingter Verzweigung verwendet.
end Strukturen

Unterscheidungs-Unions

Datensätze

Typerweiterungen

Ausführliche Syntax
Gibt in Typdefinitionen und Typerweiterungen das Ende eines Abschnitts von Memberdefinitionen an.

In der ausführlichen Syntax wird verwendet, um das Ende eines Codeblocks anzugeben, der mit dem Schlüsselwort begin beginnt.
exception Behandlung von Ausnahmen

Ausnahmetypen
Wird verwendet, um einen Ausnahmetyp zu deklarieren.
extern Externe Funktionen Gibt an, dass ein deklariertes Programmelement in einer anderen Binärdatei oder Assembly definiert ist.
false Primitive Typen Wird als boolesches Literal verwendet.
finally Ausnahmen: Der try...finally-Ausdruck Wird zusammen mit verwendet, um einen Codeblock einzuführen, der unabhängig davon try ausgeführt wird, ob eine Ausnahme auftritt.
fixed Fest Wird verwendet, um einen Zeiger auf dem Stapel zu "anheften", um eine Garbage Collection zu verhindern.
for Schleifen: for...to-Ausdruck

Schleifen: for...in-Ausdruck
Wird in Schleifenkonstrukten verwendet.
fun Lambdaausdrücke: Das fun Schlüsselwort Wird in Lambdaausdrücken verwendet, die auch als anonyme Funktionen bezeichnet werden.
function Vergleichsausdrücke

Lambdaausdrücke: Das fun-Schlüsselwort
Wird als kürzere Alternative zum -Schlüsselwort und einem Ausdruck in einem Lambdaausdruck verwendet, der über fun match Musterabgleich für ein einzelnes Argument verfügt.
global Namespaces Wird verwendet, um auf den .NET-Namespace der obersten Ebene zu verweisen.
if Bedingte Ausdrücke: if...then...else Wird in bedingten Verzweigungskonstrukten verwendet.
in Schleifen: for...in-Ausdruck

Ausführliche Syntax
Wird für Sequenzausdrücke und in ausführlicher Syntax verwendet, um Ausdrücke von Bindungen zu trennen.
inherit Vererbung Wird verwendet, um eine Basisklasse oder Basisschnittstelle anzugeben.
inline Funktionen

Inlinefunktionen
Wird verwendet, um eine Funktion anzugeben, die direkt in den Code des Aufrufers integriert werden soll.
interface Schnittstellen Wird zum Deklarieren und Implementieren von Schnittstellen verwendet.
internal Zugriffssteuerung Wird verwendet, um anzugeben, dass ein Member innerhalb einer Assembly, aber nicht außerhalb der Assembly sichtbar ist.
lazy Nicht strikte Ausdrücke Wird verwendet, um einen Ausdruck anzugeben, der nur ausgeführt werden soll, wenn ein Ergebnis benötigt wird.
let let Bindungen Wird zum Zuordnen oder Binden eines Namens zu einem Wert oder einer Funktion verwendet.
let! Asynchrone Ausdrücke

Aufgabenausdrücke

Berechnungsausdrücke
Wird in asynchronen Ausdrücken verwendet, um einen Namen an das Ergebnis einer asynchronen Berechnung zu binden, oder, in anderen Berechnungsausdrücken, zum Binden eines Namens an ein Ergebnis, das vom Berechnungstyp ist.
match Vergleichsausdrücke Wird zum Verzweigen verwendet, indem ein Wert mit einem Muster verglichen wird.
match! Berechnungsausdrücke Wird verwendet, um einen Aufruf eines Berechnungsausdrucks inline zu führen und eine Muster übereinstimmung für das Ergebnis zu erzielen.
member Mitglieder Wird verwendet, um eine Eigenschaft oder Methode in einem Objekttyp zu deklarieren.
module Module Wird verwendet, um einen Namen einer Gruppe verwandter Typen, Werte und Funktionen zuzuordnen, um ihn logisch von anderem Code zu trennen.
mutable let-Bindungen Wird verwendet, um eine Variable zu deklarieren, d. h. einen Wert, der geändert werden kann.
namespace Namespaces Wird verwendet, um einen Namen einer Gruppe verwandter Typen und Module zuzuordnen, um ihn logisch von anderem Code zu trennen.
new Konstruktoren

Einschränkungen
Wird verwendet, um einen Konstruktor zu deklarieren, zu definieren oder aufzurufen, der ein Objekt erstellt oder erstellen kann.

Wird auch in generischen Parametereinschränkungen verwendet, um anzugeben, dass ein Typ über einen bestimmten Konstruktor verfügen muss.
not Symbol- und Operatorenreferenz

Einschränkungen
Eigentlich kein Schlüsselwort. In Kombination wird jedoch not struct als generische Parametereinschränkung verwendet.
null NULL-Werte

Einschränkungen
Gibt das Fehlen eines Objekts an.

Wird auch in generischen Parametereinschränkungen verwendet.
of Unterscheidungs-Unions

Delegaten

Ausnahmetypen
Wird in Unterscheidungs-Unions verwendet, um den Typ der Kategorien von Werten sowie in Delegat- und Ausnahmedeklarationen anzugeben.
open Importdeklarationen: Das open-Schlüsselwort Wird verwendet, um den Inhalt eines Namespaces oder Moduls ohne Qualifizierung verfügbar zu machen.
or Symbol- und Operatorenreferenz

Einschränkungen
Wird mit booleschen Bedingungen als boolescher or Operator verwendet. Entspricht ||.

Wird auch in Membereinschränkungen verwendet.
override Mitglieder Wird verwendet, um eine Version einer abstrakten oder virtuellen Methode zu implementieren, die sich von der Basisversion unterscheidet.
private Zugriffssteuerung Schränkt den Zugriff auf einen Member auf Code im gleichen Typ oder Modul ein.
public Zugriffssteuerung Ermöglicht den Zugriff auf einen Member von außerhalb des Typs.
rec Funktionen Wird verwendet, um anzugeben, dass eine Funktion rekursiv ist.
return [Berechnungsausdrücke

Asynchrone Ausdrücke

Aufgabenausdrücke
Wird verwendet, um einen Wert anzugeben, der als Ergebnis eines Berechnungsausdrucks angegeben werden soll.
return! Berechnungsausdrücke

Asynchrone Ausdrücke

Aufgabenausdrücke
Wird verwendet, um einen Berechnungsausdruck anzugeben, der bei der Auswertung das Ergebnis des enthaltenden Berechnungsausdrucks bereitstellt.
select Abfrageausdrücke Wird in Abfrageausdrücken verwendet, um anzugeben, welche Felder oder Spalten extrahiert werden sollen. Beachten Sie, dass dies ein kontextbezogenes Schlüsselwort ist, was bedeutet, dass es sich nicht tatsächlich um ein reserviertes Wort handelt und nur wie ein Schlüsselwort im entsprechenden Kontext fungiert.
static Mitglieder Wird verwendet, um eine Methode oder Eigenschaft anzugeben, die ohne eine Instanz eines Typs aufgerufen werden kann, oder einen Wertmember, der von allen Instanzen eines Typs gemeinsam genutzt wird.
struct Strukturen

Tupel

Einschränkungen
Wird verwendet, um einen Strukturtyp zu deklarieren.

Wird verwendet, um ein Strukturtupel anzugeben.

Wird auch in generischen Parametereinschränkungen verwendet.

Wird für die OCaml-Kompatibilität in Moduldefinitionen verwendet.
then Bedingte Ausdrücke: if...then...else

Konstruktoren
Wird in bedingten Ausdrücken verwendet.

Wird auch zum Ausführen von Nebeneffekten nach der Objekterstellung verwendet.
to Schleifen: for...to-Ausdruck Wird in for Schleifen verwendet, um einen Bereich anzugeben.
true Primitive Typen Wird als boolescher Literal verwendet.
try Ausnahmen: Der try...with-Ausdruck

Ausnahmen: Der try...finally-Ausdruck
Wird verwendet, um einen Codeblock einzuführen, der möglicherweise eine Ausnahme generiert. Wird zusammen mit with oder finally verwendet.
type F#-Typen

Klassen

Datensätze

Strukturen

Enumerationen

Unterscheidungs-Unions

Typabkürzungen

Maßeinheiten
Wird verwendet, um eine Klasse, einen Datensatz, eine Struktur, eine Unterscheidungsgewerkschaft, einen Enumerationstyp, eine Maßeinheit oder eine Typabkürzung zu deklarieren.
upcast Umwandlung und Konvertierungen Wird verwendet, um in einen Typ zu konvertieren, der in der Vererbungskette höher ist.
use Ressourcenverwaltung: Das use-Schlüsselwort Wird anstelle von let für Werte verwendet, die Dispose aufgerufen werden müssen, um Ressourcen frei zu geben.
use! Berechnungsausdrücke

Asynchrone Ausdrücke

Aufgabenausdrücke
Wird anstelle von let! in asynchronen Ausdrücken und anderen Berechnungsausdrücken für Werte verwendet, die Dispose aufgerufen werden müssen, um Ressourcen frei zu machen.
val Explizite Felder: Das val-Schlüsselwort

Signaturen

Mitglieder
Wird in einer Signatur verwendet, um einen Wert anzugeben, oder in einem Typ, um einen Member in begrenzten Situationen zu deklarieren.
void Primitive Typen Gibt den .NET-Typ void an. Wird bei der Zusammenarbeit mit anderen .NET-Sprachen verwendet.
when Einschränkungen Wird für boolesche Bedingungen ( bei Schutz ) für Musterabrufe und zum Einführen einer Einschränkungsklausel für einen generischen Typparameter verwendet.
while Schleifen: while...do-Ausdruck Führt ein Schleifenkonstrukt ein.
with Vergleichsausdrücke

Objektausdrücke

Kopieren und Aktualisieren von Datensatzausdrücken

Typerweiterungen

Ausnahmen: Der try...with-Ausdruck
Wird zusammen mit dem Schlüsselwort match in Mustervergleichsausdrücken verwendet. Wird auch in Objektausdrücken, Datensatzkopierausdrücken und Typerweiterungen verwendet, um Memberdefinitionen einzuführen und Ausnahmehandler einzuführen.
yield Listet, Arrays, Sequenzen auf Wird in einer Liste, einem Array oder einem Sequenzausdruck verwendet, um einen Wert für eine Sequenz zu erzeugen. In der Regel kann weggelassen werden, da dies in den meisten Situationen implizit ist.
yield! Berechnungsausdrücke

Asynchrone Ausdrücke

Aufgabenausdrücke
Wird in einem Berechnungsausdruck verwendet, um das Ergebnis eines angegebenen Berechnungsausdrucks an eine Auflistung von Ergebnissen für den enthaltenden Berechnungsausdruck anfügen.
const Typanbieter Typanbieter ermöglichen die Verwendung von const als Schlüsselwort, um ein konstantes Literal als Typparameterargument anzugeben.

Die folgenden Token sind in F# reserviert, da es sich um Schlüsselwörter in der Sprache OCaml handelt:

  • asr
  • land
  • lor
  • lsl
  • lsr
  • lxor
  • mod
  • sig

Wenn Sie die --mlcompatibility Compileroption verwenden, stehen die oben genannten Schlüsselwörter zur Verwendung als Bezeichner zur Verfügung.

Die folgenden Token sind als Schlüsselwörter für die zukünftige Erweiterung von F# reserviert:

  • break
  • checked
  • component
  • const
  • constraint
  • continue
  • event
  • external
  • include
  • mixin
  • parallel
  • process
  • protected
  • pure
  • sealed
  • tailcall
  • trait
  • virtual

Die folgenden Token waren einmal als Schlüsselwörter reserviert, wurden jedoch in F# 4.1 veröffentlicht, sodass Sie sie jetzt als Bezeichner verwenden können:

Schlüsselwort Grund
method F#-Komma sind mit der Einführung member von Methoden zufrieden.
constructor Die F#-Kommaure sind mit der Einführung new von Konstruktoren zufrieden.
atomic Dies bezieht sich auf die Fad für den Transaktionsspeicher 2006. In F# wäre dies jetzt ein bibliotheksdefinierter Berechnungsausdruck.
eager dies ist nicht mehr erforderlich, es wurde ursprünglich so konzipiert, dass let eager es einem potenziellen let lazy
object es ist nicht notwendig, dies zu reservieren.
recursive F# ist mit der Verwendung von zufrieden. rec
functor Wenn F# parametrisierte Module hinzugefügt würde, würden wir verwenden. module M(args) = ...
measure Es gibt keinen bestimmten Grund, dies in diesen Tagen zu reservieren. Das [<Measure>] Attribut reicht aus.
volatile Es gibt keinen bestimmten Grund, dies in diesen Tagen zu reservieren. Das [<Volatile>] Attribut reicht aus.

Weitere Informationen