Partager via


Référence des mots clés

Cette rubrique contient des liens vers des informations sur tous les mots clés du langage F#.

Tableau de mots clés F#

Le tableau suivant montre tous les mots clés F# par ordre alphabétique, ainsi que de brèves descriptions et des liens vers des rubriques pertinentes qui contiennent plus d’informations.

Mot clé Lien Description
abstract Members (Membres)

Classes abstraites
Indique une méthode qui n’a aucune implémentation dans le type dans lequel elle est déclarée, ou qui est virtuelle avec une implémentation par défaut.
and let Liaisons

Enregistrements

Members (Membres)

Contraintes
Utilisé dans les liaisons et enregistrements mutuellement récursifs, dans les déclarations de propriété et avec plusieurs contraintes sur des paramètres génériques.
as Classes

Critères spéciaux
Utilisé pour donner à l’objet de classe actif un nom d’objet. Également utilisé pour donner un nom à un modèle entier dans une correspondance de modèle.
assert Assertions Permet de vérifier le code durant le débogage.
base Classes

Héritage
Utilisé comme nom de l’objet de classe de base.
begin Syntaxe détaillée En syntaxe détaillée, indique le début d’un bloc de code.
class Classes En syntaxe détaillée, indique le début d’une définition de classe.
default Members (Membres) Indique l’implémentation d’une méthode abstraite et s’utilise avec une déclaration de méthode abstraite pour créer une méthode virtuelle.
delegate Délégués Permet de déclarer un délégué.
do Liaisons do

Boucles : expression for...to

Boucles : expression for...in

Boucles : expression while...do
Utilisé dans les constructions de boucles ou pour exécuter du code impératif.
done Syntaxe détaillée En syntaxe détaillée, indique la fin d’un bloc de code dans une expression de boucle.
downcast Cast et conversions Permet de convertir en un type inférieur dans la chaîne d’héritage.
downto Boucles : expression for...to Dans une expression for, utilisé lors du comptage inverse.
elif Expressions conditionnelles : if...then...else Sert lors la création de branche conditionnelle. Forme abrégée de else if.
else Expressions conditionnelles : if...then...else Sert lors la création de branche conditionnelle.
end Structures

Unions discriminées

Enregistrements

Extensions de type

Syntaxe détaillée
Dans les définitions de type et les extensions de type, indique la fin d’une section de définitions de membres.

Dans la syntaxe détaillée, sert à spécifier la fin d’un bloc de code commençant par le mot clé begin.
exception Gestion des exceptions

Types d'exceptions
Permet de déclarer un type d’exception.
extern Fonctions externes Indique qu’un élément de programme déclaré est défini dans une autre ressource binaire ou un autre assembly.
false Types primitifs Utilisé comme littéral booléen.
finally Exceptions : expression try...finally Utilisé avec try pour introduire un bloc de code qui s’exécute indépendamment de toute exception.
fixed Fixe Utilisé pour « épingler » un pointeur sur la pile afin d’éviter qu’il soit nettoyé.
for Boucles : expression for...to

Boucles : expression for...in
Utilisé dans les constructions de boucle.
fun Expressions lambda : le fun mot clé Utilisé dans les expressions lambda, également appelées fonctions anonymes.
function Expressions de correspondance

Expressions lambda : mot clé fun
Utilisé comme alternative plus courte au mot clé fun et à une expression match dans une expression lambda ayant des critères spéciaux sur un argument unique.
global Espaces de noms Permet de référencer l’espace de noms .NET de niveau supérieur.
if Expressions conditionnelles : if...then...else Utilisé dans les constructions de création de branche conditionnelle.
in Boucles : expression for...in

Syntaxe détaillée
Utilisé pour les expressions de séquence et, en syntaxe détaillée, pour séparer les expressions des liaisons.
inherit Héritage Permet de spécifier une classe de base ou une interface de base.
inline Fonctions

Fonctions inline
Permet d’indiquer une fonction qui doit être intégrée directement dans le code de l’appelant.
interface Interfaces Permet de déclarer et d’implémenter des interfaces.
internal Contrôle d’accès Permet de spécifier qu’un membre est visible dans un assembly mais pas à l’extérieur de celui-ci.
lazy Expressions différées Permet de spécifier une expression qui doit être exécutée uniquement lorsqu’un résultat est nécessaire.
let let Liaisons Permet d’associer, ou de lier, un nom à une valeur ou une fonction.
let! Expressions asynchrones

Expressions de tâche

Expressions de calcul
Utilisé dans les expressions asynchrones pour lier un nom au résultat d’un calcul asynchrone ou, dans d’autres expressions de calcul, utilisé pour lier un nom à un résultat, qui est du type de calcul.
match Expressions de correspondance Permet de créer une branche en comparant une valeur à un modèle.
match! Expressions de calcul Permet d’inliner un appel dans une expression de calcul et une correspondance de modèle sur son résultat.
member Members (Membres) Permet de déclarer une propriété ou une méthode dans un type d’objet.
module Modules Permet d’associer un nom à un groupe de types, valeurs et fonctions connexes, pour le séparer de manière logique du reste du code.
mutable Liaisons let Permet de déclarer une variable, c’est-à-dire une valeur qui peut être modifiée.
namespace Espaces de noms Permet d’associer un nom à un groupe de types et de modules connexes, pour le séparer de manière logique du reste du code.
new Constructeurs

Contraintes
Utilisé pour déclarer, définir ou appeler un constructeur qui crée ou peut créer un objet.

Également utilisé dans les contraintes de paramètre générique pour indiquer qu’un type doit avoir un certain constructeur.
not Informations de référence des symboles et opérateurs

Contraintes
Pas vraiment un mot clé. Toutefois, not struct en combinaison est utilisé comme contrainte de paramètre générique.
null Valeurs Null

Contraintes
Indique l’absence d’un objet.

Également utilisé dans les contraintes de paramètres génériques.
of Unions discriminées

Délégués

Types d'exceptions
Utilisé dans les unions discriminées pour indiquer le type des catégories de valeurs, ainsi que dans les déclarations de délégué et d’exception.
open Déclarations d’importation : mot clé open Permet de rendre disponible le contenu d’un espace de noms ou d’un module sans qualification.
or Informations de référence des symboles et opérateurs

Contraintes
Utilisé avec des conditions booléennes en tant qu’opérateur or booléen. Équivalent à ||.

Également utilisé dans les contraintes de membre.
override Members (Membres) Permet d’implémenter une version d’une méthode abstraite ou virtuelle qui diffère de la version de base.
private Contrôle d’accès Restreint l’accès à un membre au code situé dans le même type ou module.
public Contrôle d’accès Autorise l’accès à un membre en dehors du type.
rec Fonctions Permet d’indiquer qu’une fonction est récursive.
return Expressions de calcul

Expressions asynchrones

Expressions de tâche
Utilisé pour indiquer une valeur à fournir comme résultat d’une expression de calcul.
return! Expressions de calcul

Expressions asynchrones

Expressions de tâche
Utilisé pour indiquer une expression de calcul qui, lorsqu’elle est évaluée, fournit le résultat de l’expression de calcul contenante.
select Expressions de requête Utilisé dans les expressions de requête pour spécifier les champs ou colonnes à extraire. Notez qu’il s’agit d’un mot clé contextuel, ce qui signifie qu’il ne s’agit pas d’un mot réservé et qu’il agit uniquement comme un mot clé dans le contexte approprié.
static Members (Membres) Permet d’indiquer une méthode ou une propriété qui peut être appelée sans instance d’un type, ou un membre de valeur partagé entre toutes les instances d’un type.
struct Structures

Tuples

Contraintes
Utilisé pour déclarer un type de structure.

Utilisé pour spécifier un tuple de struct.

Également utilisé dans les contraintes de paramètres génériques.

Utilisé pour la compatibilité OCaml dans les définitions de module.
then Expressions conditionnelles : if...then...else

Constructeurs
Utilisé dans les expressions conditionnelles.

Également utilisé pour les effets secondaires après la construction de l’objet.
to Boucles : expression for...to Utilisé dans les boucles for pour indiquer une plage.
true Types primitifs Utilisé comme littéral booléen.
try Exceptions : expression try...with

Exceptions : expression try...finally
Permet d’introduire un bloc de code susceptible de générer une exception. Utilisé avec with ou finally.
type Types F#

Classes

Enregistrements

Structures

Énumérations

Unions discriminées

Abréviations de types

Unités de mesure
Permet de déclarer une classe, un enregistrement, une structure, une union discriminée, un type énumération, une unité de mesure ou une abréviation de type.
upcast Cast et conversions Permet de convertir en un type supérieur dans la chaîne d’héritage.
use Gestion des ressources : mot clé use Utilisé au lieu de let pour les valeurs qui nécessitent Dispose pour être appelées à libérer des ressources.
use! Expressions de calcul

Expressions asynchrones

Expressions de tâche
Utilisé au lieu de let! dans les expressions asynchrones et d’autres expressions de calcul pour les valeurs qui nécessitent Dispose pour être appelées à libérer des ressources.
val Champs explicites : mot clé val

Signatures

Members (Membres)
Utilisé dans une signature pour indiquer une valeur, ou dans un type pour déclarer un membre, dans des situations limitées.
void Types primitifs Indique le type .NET void. Utilisé lors de l’interopérabilité avec d’autres langages .NET.
when Contraintes Utilisé pour les conditions booléennes (when guards) sur des critères spéciaux et pour introduire une clause de contrainte d’un paramètre de type générique.
while Boucles : expression while...do Introduit une construction de boucle.
with Expressions de correspondance

Expressions d'objet

Copie et mise à jour des expressions d’enregistrement

Extensions de type

Exceptions : expression try...with
Utilisé avec le mot clé match dans les expressions de correspondance de modèle. Également utilisé dans les expressions d’objet, les expressions de copie d’enregistrements et les extensions de type pour introduire des définitions de membres et des gestionnaires d’exceptions.
yield Listes, Tableaux, Séquences Utilisé dans une liste, un tableau ou une expression de séquence pour produire une valeur pour une séquence. En règle générale, il peut être omis, car il est implicite dans la plupart des situations.
yield! Expressions de calcul

Expressions asynchrones

Expressions de tâche
Utilisé dans une expression de calcul pour ajouter le résultat d’une expression de calcul donnée à une collection de résultats pour l’expression de calcul conteneur.
const Fournisseurs de type Les fournisseurs de types permettent d’utiliser const comme mot clé pour spécifier un littéral constant en tant qu’argument de paramètre de type.

Les jetons suivants sont réservés en F#, car il s’agit de mots clés dans le langage OCaml :

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

Si vous utilisez l’option de compilateur --mlcompatibility, les mots clés ci-dessus sont disponibles pour une utilisation en tant qu’identificateurs.

Les jetons suivants sont réservés en tant que mots clés pour l’expansion future de F# :

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

Les jetons suivants étaient auparavant réservés en tant que mots clés, mais ont été libérés dans F# 4.1. Vous pouvez donc les utiliser comme identificateurs :

Mot clé Motif
method Utilisez member pour introduire des méthodes.
constructor Utilisez new pour introduire des constructeurs.
atomic Lié à la mode de la mémoire transactionnelle en 2006. Il s’agit désormais d’une expression de calcul définie par la bibliothèque.
eager Plus nécessaire; il a été initialement conçu pour être let eager pour correspondre à un potentiel let lazy.
object Il n’est pas nécessaire de le réserver.
recursive Utiliser rec.
functor Si F# ajoutait des modules paramétrables, vous utiliseriez module M(args) = ....
measure L’attribut [<Measure>] suffit.
volatile L’attribut [<Volatile>] suffit.

Voir aussi