Partager via


Référence des symboles et des opérateurs

Cet article inclut des tableaux décrivant les symboles et les opérateurs utilisés dans F# et fournit une brève description de chacun d’eux. Certains symboles et opérateurs ont deux entrées ou plus lorsqu’ils sont utilisés dans plusieurs rôles.

Commentaires, directive du compilateur et symboles d’attribut

Le tableau suivant décrit les symboles liés aux commentaires, aux directives du compilateur et aux attributs.

Symbole ou opérateur Liens Descriptif
(*...*) Délimite un commentaire qui peut s’étendre sur plusieurs lignes.
// Indique le début d’un commentaire à une seule ligne.
/// XML Documentation Indique un commentaire XML.
# Directives du compilateur Préfixe une directive de préprocesseur ou de compilateur.
[<...>] Attributs Délimite un attribut.

Symboles de chaîne et d’identificateur

Le tableau suivant décrit les symboles liés aux chaînes.

Symbole ou opérateur Liens Descriptif
" Chaînes Délimite une chaîne de texte.
@" Chaînes Démarre une chaîne de texte détaillée, qui peut inclure des barres obliques inverses et d’autres caractères.
""" Chaînes Délimite une chaîne de texte entre guillemets triples, qui peut inclure des barres obliques inverses, des guillemets doubles et d’autres caractères.
$" Chaînes interpolées Démarre une chaîne interpolée.
' littéraux Délimite un littéral à caractère unique.
``...`` Délimite un identificateur qui ne serait pas un identificateur juridique, tel qu’un mot clé de langue.
\ Chaînes Échappe le caractère suivant ; utilisé dans les littéraux de caractères et de chaîne.

Opérateurs arithmétiques

Le tableau suivant décrit les opérateurs arithmétiques.

Symbole ou opérateur Liens Descriptif
+ Opérateurs arithmétiques
  • Lorsqu’il est utilisé en tant qu’opérateur binaire, ajoute les côtés gauche et droit.
  • Lorsqu’il est utilisé comme opérateur unaire, indique une quantité positive. (Formellement, il produit la même valeur avec le signe inchangé.)
- Opérateurs arithmétiques
  • Lorsqu’il est utilisé en tant qu’opérateur binaire, soustrait le côté droit du côté gauche.
  • Lorsqu’il est utilisé en tant qu’opérateur unaire, effectue une opération de négation.
* Opérateurs arithmétiques

Tuples

Unités de mesure
  • Lorsqu’il est utilisé en tant qu’opérateur binaire, multiplie les côtés gauche et droit.
  • Dans les types, indique le jumelage dans un tuple.
  • Utilisé dans les unités de types de mesures.
/ Opérateurs arithmétiques

Unités de mesure
  • Divise le côté gauche (numérateur) par le côté droit (dénominateur).
  • Utilisé dans les unités de types de mesures.
% Opérateurs arithmétiques Calcule le reste entier.
** Opérateurs arithmétiques Calcule l’opération d’exposant (x ** y signifie x à la puissance de y).

Opérateurs de comparaison

Le tableau suivant décrit les opérateurs de comparaison.

Symbole ou opérateur Liens Descriptif
< Opérateurs arithmétiques Calcule l’opération inférieure à celle-ci.
<> Opérateurs arithmétiques Retourne true si le côté gauche n’est pas égal au côté droit ; sinon, retourne false.
<= Opérateurs arithmétiques Retourne true si le côté gauche est inférieur ou égal au côté droit ; sinon, retourne false.
= Opérateurs arithmétiques Retourne true si le côté gauche est égal au côté droit ; sinon, retourne false.
> Opérateurs arithmétiques Retourne true si le côté gauche est supérieur au côté droit ; sinon, retourne false.
>= Opérateurs arithmétiques Retourne true si le côté gauche est supérieur ou égal au côté droit ; sinon, retourne false.

Opérateurs booléens

Le tableau suivant décrit les symboles d’opérateurs arithmétiques et booléens.

Symbole ou opérateur Liens Descriptif
&& Opérateurs booléens Calcule l’opération AND booléenne.
|| Opérateurs booléens Calcule l’opération OR booléenne.

Opérateurs de bits

Le tableau suivant décrit les opérateurs au niveau du bit.

Symbole ou opérateur Liens Descriptif
&&& Opérateurs bit à bit Calcule l’opération AND au niveau du bit.
<<< Opérateurs bit à bit Déplace les bits de la quantité sur le côté gauche par le nombre de bits spécifiés à droite.
>>> Opérateurs bit à bit Déplace les bits de la quantité sur le côté gauche vers la droite par le nombre de places spécifiées sur le côté droit.
^^^ Opérateurs bit à bit Calcule l’opération OR exclusive au niveau du bit.
||| Opérateurs bit à bit Calcule l’opération OR au niveau du bit.
~~~ Opérateurs bit à bit Calcule l’opération NOT au niveau du bit.

Symboles de fonction et opérateurs

Le tableau suivant décrit les opérateurs et les symboles liés aux fonctions.

Symbole ou opérateur Liens Descriptif
-> Fonctions Dans les expressions de fonction, sépare le modèle d’entrée de l’expression de sortie.
|> Fonctions Transmet le résultat du côté gauche à la fonction sur le côté droit (opérateur de canal avant).
||> ( ||> )<'T1,'T2,'U> Function Transmet le tuple de deux arguments du côté gauche à la fonction à droite.
|||> ( ||| |> )<'T1,'T2,'T3,'U> Function Transmet le tuple de trois arguments sur le côté gauche à la fonction sur le côté droit.
>> Fonctions Compose deux fonctions (opérateur de composition avant).
<< Fonctions Compose deux fonctions dans l’ordre inverse ; la deuxième est exécutée en premier (opérateur de composition descendante).
<| Fonctions Transmet le résultat de l’expression du côté droit à la fonction sur le côté gauche (opérateur de canal arrière).
<|| ( <|| )<' T1,'T2,'U> Function Transmet le tuple de deux arguments du côté droit à la fonction sur le côté gauche.
<||| ( <||| )<' T1,'T2,'T3,'U> Function Transmet le tuple de trois arguments sur le côté droit à la fonction sur le côté gauche.

Symboles de type et opérateurs

Le tableau suivant décrit les symboles liés à l’annotation de type et aux tests de type.

Symbole ou opérateur Liens Descriptif
-> Fonctions Dans les types de fonctions, délimite les arguments et les valeurs de retour, génère également un résultat dans les expressions de séquence.
: Fonctions Dans une annotation de type, sépare un paramètre ou un nom de membre de son type.
:> Conversion et conversion Convertit un type en type supérieur dans la hiérarchie.
:? Expressions de correspondance Retourne true si la valeur correspond au type spécifié (y compris s’il s’agit d’un sous-type) ; sinon, retourne false (opérateur de test de type).
:?> Conversion et conversion Convertit un type en type inférieur dans la hiérarchie.
# Types flexibles Lorsqu’il est utilisé avec un type, indique un type flexible, qui fait référence à un type ou à l’un de ses types dérivés.
' Généralisation automatique Indique un paramètre de type générique.
<...> Généralisation automatique Délimite les paramètres de type.
^ Paramètres de type résolus statiquement

Chaînes
  • Spécifie les paramètres de type qui doivent être résolus au moment de la compilation, et non au moment de l’exécution.
  • Concatène des chaînes.
{} Classe ou enregistrement Lorsqu’il est utilisé avec le type mot clé, délimite une classe ou un enregistrement. Le type est une classe lorsque les membres sont déclarés ou que le class mot clé est utilisé. Sinon, c’est un enregistrement.
{||} Enregistrement anonyme Indique un enregistrement anonyme

Symboles utilisés dans les expressions de recherche et de tranche de membre

Le tableau suivant décrit les symboles supplémentaires utilisés dans les expressions de recherche et de tranche de membre.

Symbole ou opérateur Liens Descriptif
. Membres Accède à un membre et sépare les noms individuels d’un nom complet.
[...] ou .[...] Tableaux

Propriétés indexées

Expressions de tranche
Indexe dans un tableau, une chaîne ou une collection, ou prend une tranche d’une collection.

Symboles utilisés dans le tuple, la liste, le tableau, les expressions d’unité et les modèles

Le tableau suivant décrit les symboles liés aux tuples, listes, valeurs d’unité et tableaux.

Symbole ou opérateur Liens Descriptif
( ) Unit, type Représente la valeur unique du type d’unité.
, Tuples Sépare les éléments d’un tuple ou des paramètres de type.
:: Listes

Expressions de correspondance
  • Crée une liste. L’élément situé à gauche est ajouté à la liste sur le côté droit.
  • Utilisé dans le modèle correspondant pour séparer les parties d’une liste.
@ Listes Concatène deux listes.
[...] Listes Délimite les éléments d’une liste.
[|...|] Tableaux Délimite les éléments d’un tableau.

Symboles utilisés dans les expressions impératives

Le tableau suivant décrit les symboles supplémentaires utilisés dans les expressions.

Symbole ou opérateur Liens Descriptif
<- Valeurs Affecte une valeur à une variable.
; Syntaxe détaillée

Sépare les expressions (utilisées principalement dans la syntaxe détaillée). Sépare également les éléments d’une liste ou de champs d’un enregistrement.

Symboles supplémentaires utilisés dans les séquences et les expressions de calcul

Le tableau suivant décrit les symboles supplémentaires utilisés dans les séquences et les expressions de calcul.

Symbole ou opérateur Liens Descriptif
-> Séquences Génère une expression (dans les expressions de séquence) ; équivalent aux do yield mots clés.
! Expressions de calcul Après un mot clé, indique une version modifiée du comportement du mot clé tel qu’il est contrôlé par une expression de calcul.

Symboles supplémentaires utilisés dans les modèles de correspondance

Le tableau suivant décrit les symboles liés à la correspondance des modèles.

Symbole ou opérateur Liens Descriptif
-> Expressions de correspondance Utilisé dans les expressions de correspondance.
& Correspondance de motifs
  • Calcule l’adresse d’une valeur mutable, à utiliser lors de l’interopérabilité avec d’autres langues.
  • Utilisé dans les modèles AND.
_ Expressions de correspondance

Génériques
  • Indique un modèle générique.
  • Spécifie un paramètre générique anonyme.
| Expressions de correspondance Délimite les cas de correspondance individuelle, les cas d’union discriminés individuels et les valeurs d’énumération.

Symboles supplémentaires utilisés dans les déclarations

Le tableau suivant décrit les symboles liés aux déclarations.

Symbole ou opérateur Liens Descriptif
(|...|) modèles actifs Délimite un nom de modèle actif. On appelle aussi des clips de banane.
? Paramètres et arguments Spécifie un argument facultatif.
~~ Surcharge des opérateurs Utilisé pour déclarer une surcharge pour l’opérateur de négation unaire.
~- Surcharge des opérateurs Utilisé pour déclarer une surcharge pour l’opérateur moins unaire.
~+ Surcharge des opérateurs Utilisé pour déclarer une surcharge pour l’opérateur plus unaire.

Symboles supplémentaires utilisés entre guillemets

Le tableau suivant décrit les symboles liés aux guillemets de code.

Symbole ou opérateur Liens Descriptif
<@...@> Guillemets de code Délimite un guillemet de code typé.
<@@...@@> Guillemets de code Délimite un guillemet de code non typé.
% Guillemets de code Utilisé pour l’épinglage d’expressions dans des guillemets de code typés.
%% Guillemets de code Utilisé pour l’épinglage d’expressions dans des guillemets de code non typés.

Opérateurs de recherche dynamique

Le tableau suivant décrit les symboles supplémentaires utilisés dans les expressions de recherche dynamique. Ils ne sont généralement pas utilisés dans la programmation F# de routine et aucune implémentation de cet opérateur n’est fournie dans la bibliothèque principale F#.

Symbole ou opérateur Liens Descriptif
? Utilisé comme opérateur pour les appels de méthode et de propriété dynamiques.
? ... <- ... Utilisé comme opérateur pour définir des propriétés dynamiques.

Opérateurs nullables dans les requêtes

Les opérateurs nullables sont définis pour une utilisation dans les expressions de requête. Le tableau suivant présente ces opérateurs.

Symbole ou opérateur Liens Descriptif
%? Opérateurs Nullable Calcule le reste entier, lorsque le côté droit est un type Nullable.
*? Opérateurs Nullable Multiplie les côtés gauche et droit, lorsque le côté droit est un type Nullable.
+? Opérateurs Nullable Ajoute les côtés gauche et droit, lorsque le côté droit est un type Nullable.
-? Opérateurs Nullable Soustrait le côté droit du côté gauche, lorsque le côté droit est un type Nullable.
/? Opérateurs Nullable Divise le côté gauche par le côté droit, lorsque le côté droit est un type Nullable.
<? Opérateurs Nullable Calcule la valeur inférieure à l’opération, lorsque le côté droit est un type Nullable.
<>? Opérateurs Nullable Calcule l’opération « non égale » lorsque le côté droit est un type Nullable.
<=? Opérateurs Nullable Calcule l’opération « inférieure ou égale à » lorsque le côté droit est un type Nullable.
=? Opérateurs Nullable Calcule l’opération « égale » lorsque le côté droit est un type Nullable.
>? Opérateurs Nullable Calcule l’opération « supérieure à » lorsque le côté droit est un type Nullable.
>=? Opérateurs Nullable Calcule l’opération « supérieure ou égale » lorsque le côté droit est un type nullable.
?>=, , ?>, ?<?<=, , ?<>?*?+?-?=?/ Opérateurs Nullable Équivalent aux opérateurs correspondants sans le ? préfixe, où un type nullable se trouve à gauche.
>=?, , >?, <?<=?, , <>?*?+?-?=?/? Opérateurs Nullable Équivalent aux opérateurs correspondants sans le ? suffixe, où un type nullable se trouve à droite.
?>=?, , ?>?, ?<??<=?, , ?<>??*??+??-??=??/? Opérateurs Nullable Équivaut aux opérateurs correspondants sans les points d’interrogation environnants, où les deux côtés sont des types nullables.

Opérateurs de cellule de référence (déconseillés)

Le tableau suivant décrit les symboles liés aux cellules de référence. L’utilisation de ces opérateurs génère des messages consultatifs à partir de F# 6. Pour plus d’informations, consultez Les messages de conseil relatifs aux opérations de cellule de référence.

Symbole ou opérateur Liens Descriptif
! Cellules de référence Déréférence une cellule de référence.
:= Cellules de référence Affecte une valeur à une cellule de référence.

Précédence des opérateurs

Le tableau suivant montre l’ordre de précédence des opérateurs et d’autres mots clés d’expression en F#, dans l’ordre de priorité la plus faible vers la priorité la plus élevée. Il s’agit également de l’associativité, le cas échéant.

Opérateur Associativité
as Droite
when Droite
| (canal) Gauche
; Droite
let Nonassociative
function, , funmatch, ,try Nonassociative
if Nonassociative
not Droite
-> Droite
:= Droite
, Nonassociative
or, || Gauche
&, && Gauche
:>, :?> Droite
< op, >op, =|, op, &op, &,$

(y compris <<<, , >>>|||, &&&)
Gauche
^ Op

(y compris ^^^)
Droite
:: Droite
:? Non associatif
- op, +op S’applique aux utilisations infixes de ces symboles
* op, /op, %op Gauche
** Op Droite
f x (application de fonction)

(y compris lazy x, assert x)
Gauche
| (correspondance de modèle) Droite
opérateurs de préfixe (+op, -op, , %, &&!%%&, op, op) ~ Gauche
. Gauche
f(x) Gauche
f< Types> Gauche

F# prend en charge la surcharge d’opérateur personnalisée. Cela signifie que vous pouvez définir vos propres opérateurs. Dans le tableau précédent, l’opération peut être n’importe quelle séquence valide (éventuellement vide) de caractères d’opérateur, intégrée ou définie par l’utilisateur. Par conséquent, vous pouvez utiliser cette table pour déterminer la séquence de caractères à utiliser pour un opérateur personnalisé afin d’atteindre le niveau de priorité souhaité. Les caractères de début . sont ignorés lorsque le compilateur détermine la priorité.

Voir aussi