Schlüsselwortreferenz
Dieses Thema enthält Links zu Informationen über alle F#-Sprachschlüsselwörter.
Tabelle mit F#-Schlüsselwörtern
Die folgende Tabelle zeigt alle F#-Schlüsselwörter in alphabetischer Reihenfolge zusammen mit kurzen Beschreibungen und Links zu relevanten Themen, die weitere Informationen enthalten.
Schlüsselwort | Link | BESCHREIBUNG |
---|---|---|
abstract |
Mitglieder Abstrakte Klassen |
Gibt eine Methode an, die entweder im Typ, in dem sie deklariert wird, über keine Implementierung verfügt oder die virtuell ist und über eine Standardimplementierung verfügt. |
and |
let -BindungenDatensätze Mitglieder Einschränkungen |
Wird in gegenseitig rekursiven Bindungen und Datensätzen, in Eigenschaftendeklarationen und bei mehreren Beschränkungen in Bezug auf generische Parameter verwendet. |
as |
Klassen Mustervergleich |
Wird verwendet, um dem aktuellen Klassenobjekt einen Objektnamen zu geben. Wird auch verwendet, um einem ganzen Muster innerhalb eines Musterabgleichs einen Namen zu geben. |
assert |
Assertionen | Wird verwendet, um den Code während des Debuggens zu überprüfen. |
base |
Klassen Vererbung |
Wird als Name des Basisklassenobjekts verwendet. |
begin |
Ausführliche Syntax | Gibt in ausführlicher Syntax den Start eines Codeblocks an. |
class |
Klassen | Gibt in ausführlicher Syntax den Beginn einer Klassendefinition an. |
default |
Mitglieder | Gibt eine Implementierung einer abstrakten Methode an; wird gemeinsam mit einer abstrakten Methodendeklaration zum Erstellen einer virtuellen Methode verwendet. |
delegate |
Delegaten | Wird verwendet, um einen Delegaten zu deklarieren. |
do |
do-Bindungen Schleifen: for...to -AusdruckSchleifen: for...in -AusdruckSchleifen: while...do -Ausdruck |
Wird in Schleifenkonstrukten oder zum Ausführen von imperativem Code verwendet. |
done |
Ausführliche Syntax | Gibt in ausführlicher Syntax das Ende eines Codeblocks in einem Schleifenausdruck an. |
downcast |
Umwandlung und Konvertierungen | Wird zum Konvertieren in einen Typ verwendet, der in Vererbungskette niedriger ist. |
downto |
Schleifen: for...to -Ausdruck |
Wird in einem for -Ausdruck beim Rückwährtszählen verwendet. |
elif |
Bedingte Ausdrücke: if...then...else |
Wird in bedingten Verzweigungskonstrukten verwendet. Eine Kurzform von else if . |
else |
Bedingte Ausdrücke: if...then...else |
Wird in bedingten Verzweigungskonstrukten verwendet. |
end |
Strukturen Unterscheidungs-Unions Datensätze Typerweiterungen Ausführliche Syntax |
Gibt in Typdefinitionen und Typerweiterungen das Ende eines Abschnitts von Memberdefinitionen an. Wird in ausführlicher Syntax verwendet, um das Ende eines Codeblocks anzugeben, der mit dem Schlüsselwort begin beginnt. |
exception |
Ausnahmebehandlung Ausnahmetypen |
Wird verwendet, um einen Ausnahmetyp zu deklarieren. |
extern |
Externe Funktionen | Gibt an, dass ein deklariertes Programmelement in einem anderen Binärwert oder einer anderen Assembly definiert ist. |
false |
Primitive Typen | Wird als boolesches Literal verwendet. |
finally |
Ausnahmen: Der try...finally -Ausdruck |
Wird zusammen mit try verwendet, um einen Codeblock bereitzustellen, der unabhängig davon ausgeführt wird, ob eine Ausnahme auftritt. |
fixed |
Fest | Wird verwendet, um einen Zeiger auf dem Stapel anzuheften, um zu verhindern, dass er per Garbage Collection entsorgt wird. |
for |
Schleifen: for...to -AusdruckSchleifen: for...in-Ausdruck |
Wird in Schleifenkonstrukten verwendet. |
fun |
Lambdaausdrücke: das fun -Schlüsselwort |
Wird in Lambdaausdrücken verwendet, auch als anonyme Funktionen bekannt. |
function |
Vergleichsausdrücke Lambdaausdrücke: das Schlüsselwort „fun“ |
Wird als kürzere Alternative zum Schlüsselwort fun und als match -Ausdruck in einem Lambdaausdruck verwendet, der über 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 zum Trennen von Ausdrücken aus Bindungen verwendet. |
inherit |
Vererbung | Wird verwendet, um eine Basisklasse oder Basisschnittstelle festzulegen. |
inline |
Funktionen Inlinefunktionen |
Wird verwendet, um eine Funktion anzugeben, die direkt in den Code der aufrufenden Funktion integriert werden soll. |
interface |
Schnittstellen | Wird verwendet, um Schnittstellen zu deklarieren und implementieren. |
internal |
Zugriffssteuerung | Wird verwendet, um festzulegen, dass ein Member innerhalb einer Assembly sichtbar ist, außerhalb jedoch nicht. |
lazy |
Nicht strikte Ausdrücke | Wird verwendet, um einen Ausdruck anzugeben, die nur ausgeführt wird, wenn ein Ergebnis erforderlich ist. |
let |
let -Bindungen |
Wird verwendet, um einen Namen einem Wert oder einer Funktion zuzuordnen oder daran zu binden. |
let! |
Asynchrone Ausdrücke Taskausdrücke Berechnungsausdrücke |
Wird in asynchronen Ausdrücken verwendet, um einen Namen an das Ergebnis einer asynchronen Berechnung zu binden, oder wird in anderen Berechnungsausdrücken verwendet, um einen Namen an ein Ergebnis zu binden, das den Berechnungstyp hat. |
match |
Vergleichsausdrücke | Wird zum Verzweigen verwendet, indem ein Wert mit einem Muster verglichen wird. |
match! |
Berechnungsausdrücke | Wird verwendet, um einen Aufruf an einen Berechnungsausdruck und einen Musterabgleich inline mit dessen Ergebnis einzubinden. |
member |
Mitglieder | Wird verwendet, um eine Eigenschaft oder Methode in einem Objekttypen zu deklarieren. |
module |
Module | Wird verwendet, um einen Namen einer Gruppe zugehöriger 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 veränderlichen Wert. |
namespace |
Namespaces | Wird verwendet, um einen Namen einer Gruppe zugehöriger Typen und Module zuzuordnen, um ihn logisch von anderem Code zu trennen. |
new |
Konstruktoren Einschränkungen |
Dient zum Deklarieren, Definieren oder Aufrufen eines Konstruktors, 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. Allerdings wird not struct zusammen 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 Wertekategorien anzugeben, sowie in Delegaten und Ausnahmedeklarationen. |
open |
Importdeklarationen: Das open -Schlüsselwort |
Wird verwendet, um den Inhalt eines Namespace 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 | Beschränkt den Zugriff eines Members auf Code im gleichen Typ oder Modul. |
public |
Zugriffssteuerung | Lässt von einer Position außerhalb des Typs den Zugriff auf ein Member zu. |
rec |
Funktionen | Wird verwendet, um anzugeben, dass eine Funktion rekursiv ist. |
return |
Berechnungsausdrücke Asynchrone Ausdrücke Taskausdrücke |
Wird verwendet, um einen Wert anzugeben, der als Ergebnis eines Berechnungsausdrucks geliefert werden soll. |
return! |
Berechnungsausdrücke Asynchrone Ausdrücke Taskausdrücke |
Wird verwendet, um einen Berechnungsausdruck anzugeben, der bei 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 kontextabhängiges Schlüsselwort ist, was bedeutet, dass es sich nicht tatsächlich um ein reserviertes Wort handelt und es sich nur im entsprechenden Kontext wie ein Schlüsselwort verhält. |
static |
Mitglieder | Wird verwendet, um eine Methode oder Eigenschaft anzugeben, die ohne eine Instanz eines Typs aufgerufen werden kann, oder einen Wertemember, der für alle Instanzen eines Typs freigegeben 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 verwendet, um nach der Objektkonstruktion Nebeneffekte auszuführen. |
to |
Schleifen: for...to -Ausdruck |
Wird in for -Schleifen zum Angeben eines Bereichs verwendet. |
true |
Primitive Typen | Wird als boolesches 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 Klassen, Datensätze, Strukturen, Unterscheidungs-Unions, Enumerationstypen, Maßeinheiten oder Typenabkürzungen zu deklarieren. |
upcast |
Umwandlung und Konvertierungen | Wird zum Konvertieren in einen Typ verwendet, der in Vererbungskette höher ist. |
use |
Ressourcenverwaltung: Das use -Schlüsselwort |
Wird anstelle von let für Werte verwendet, für die Dispose aufgerufen werden muss, um Ressourcen freizugeben. |
use! |
Berechnungsausdrücke Asynchrone Ausdrücke Taskausdrücke |
Wird anstelle von let! in asynchronen Ausdrücken und anderen Berechnungsausdrücken für Werte verwendet, für die Dispose aufgerufen werden muss, um Ressourcen freizugeben. |
val |
Explizite Felder: Das val -SchlüsselwortSignaturen Mitglieder |
Wird in einer Signatur verwendet, um einen Wert anzugeben, oder in wenigen Situationen in einem Typ, um ein Member zu deklarieren. |
void |
Primitive Typen | Gibt den .NET-Typ void an. Wird bei der Interoperabilität mit anderen .NET-Sprachen verwendet. |
when |
Einschränkungen | Wird für boolesche Bedingungen (when guards) bei Musterabgleichen sowie 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 Musterabgleichsausdrücken verwendet. Wird auch in Objektausdrücken, Datensatzkopieausdrücken und Typerweiterungen verwendet, um Memberdefinitionen und Ausnahmehandler einzuführen. |
yield |
Listen, Arrays, Sequenzen | Wird in einem Listen-, Array- oder Sequenzausdruck zum Generieren eines Werts für eine Sequenz verwendet. Kann in der Regel weggelassen werden, da dies in den meisten Situationen implizit ist. |
yield! |
Berechnungsausdrücke Asynchrone Ausdrücke Taskausdrücke |
Wird in einem Berechnungsausdruck zum Anhängen des Ergebnisses eines bestimmten Berechnungsausdrucks für eine Ergebnisauflistung für den enthaltenden Berechnungsausdruck verwendet. |
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 sie Schlüsselwörter in der OCaml-Sprache sind:
asr
land
lor
lsl
lsr
lxor
mod
sig
Wenn Sie die Compileroption --mlcompatibility
verwenden, stehen die obigen 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 einst als Schlüsselwörter reserviert, wurden aber in F# 4.1 veröffentlicht , sodass Sie sie jetzt als Bezeichner verwenden können:
Schlüsselwort | `Reason` |
---|---|
method |
Verwenden Sie member , um Methoden einzuführen. |
constructor |
Verwenden Sie new , um Konstruktoren einzuführen. |
atomic |
Bezogen auf die Marotte in Bezug auf den Transaktionsspeicher um 2006. Dies wäre jetzt ein bibliotheksdefinierter Berechnungsausdruck. |
eager |
Ist nicht mehr erforderlich; ursprünglich sollte let eager einem möglichen let lazy entsprechen. |
object |
Muss nicht reserviert werden. |
recursive |
Verwenden Sie rec . |
functor |
Wenn F# parametrisierte Module hinzugefügt hat, verwenden Sie module M(args) = ... . |
measure |
Das [<Measure>] -Attribut reicht aus. |
volatile |
Das [<Volatile>] -Attribut reicht aus. |