Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
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 |
|
- |
Opérateurs arithmétiques |
|
* |
Opérateurs arithmétiques Tuples Unités de mesure |
|
/ |
Opérateurs arithmétiques Unités de mesure |
|
% |
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 |
|
{} |
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 |
|
@ |
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 |
|
_ |
Expressions de correspondance Génériques |
|
| |
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é.