Naslaginformatie voor symbolen en operatoren
Dit artikel bevat tabellen met een beschrijving van de symbolen en operators die worden gebruikt in F# en bevat een korte beschrijving van elk van deze symbolen. Sommige symbolen en operators hebben twee of meer vermeldingen wanneer ze in meerdere rollen worden gebruikt.
Opmerking, compilerrichtlijn en kenmerksymbolen
In de volgende tabel worden symbolen beschreven die betrekking hebben op opmerkingen, compilerrichtlijnen en kenmerken.
Symbool of operator | Koppelingen | Description |
---|---|---|
(*...*) |
Hiermee wordt een opmerking gescheiden die meerdere regels kan omvatten. | |
// |
Geeft het begin van een opmerking met één regel aan. | |
/// |
XML-documentatie | Geeft een XML-opmerking aan. |
# |
Compilerrichtlijnen | Voorvoegsel van een preprocessor- of compilerrichtlijn. |
[<...>] |
Kenmerken | Een kenmerk wordt gescheiden. |
Tekenreeks- en id-symbolen
In de volgende tabel worden symbolen beschreven die betrekking hebben op tekenreeksen.
Symbool of operator | Koppelingen | Description |
---|---|---|
" |
Tekenreeksen | Een tekenreeks met scheidingstekens. |
@" |
Tekenreeksen | Hiermee start u een exacte tekenreeks, die mogelijk backslashes en andere tekens bevat. |
""" |
Tekenreeksen | Hiermee wordt een tekenreeks met drie aanhalingstekens gescheiden, zoals backslashes, dubbele aanhalingstekens en andere tekens. |
$" |
Geïnterpoleerde tekenreeksen | Hiermee start u een geïnterpoleerde tekenreeks. |
' |
Literals | Scheidingstekens voor letterlijke tekens van één teken. |
``...`` |
Hiermee wordt een id gescheiden die anders geen juridische id zou zijn, zoals een taalwoord. | |
\ |
Tekenreeksen | Escapet het volgende teken; gebruikt in letterlijke tekens en tekenreeksen. |
Wiskundige operatoren
In de volgende tabel worden de rekenkundige operatoren beschreven.
Symbool of operator | Koppelingen | Description |
---|---|---|
+ |
Rekenkundige operatoren |
|
- |
Rekenkundige operatoren |
|
* |
Rekenkundige operatoren Tupels Maateenheden |
|
/ |
Rekenkundige operatoren Maateenheden |
|
% |
Rekenkundige operatoren | Berekent het restgetal van het gehele getal. |
** |
Rekenkundige operatoren | Berekent de exponentiëringsbewerking (x ** y betekent x tot de macht van y ). |
Vergelijkingsoperatoren
In de volgende tabel worden de vergelijkingsoperatoren beschreven.
Symbool of operator | Koppelingen | Description |
---|---|---|
< |
Rekenkundige operatoren | Berekent de minder-dan-bewerking. |
<> |
Rekenkundige operatoren | Retourneert als de linkerkant true niet gelijk is aan de rechterkant; anders wordt onwaar geretourneerd. |
<= |
Rekenkundige operatoren | Retourneert als de linkerkant true kleiner is dan of gelijk is aan de rechterkant; anders wordt geretourneerd false . |
= |
Rekenkundige operatoren | Retourneert als de linkerkant true gelijk is aan de rechterkant; anders wordt het resultaat geretourneerd false . |
> |
Rekenkundige operatoren | Retourneert als de linkerkant true groter is dan de rechterkant; anders wordt als resultaat gegeven false . |
>= |
Rekenkundige operatoren | Retourneert als de linkerkant true groter is dan of gelijk is aan de rechterkant; anders wordt geretourneerd false . |
Booleaanse operatoren
In de volgende tabel worden de wiskundige en booleaanse operatorsymbolen beschreven.
Symbool of operator | Koppelingen | Description |
---|---|---|
&& |
Booleaanse operators | Berekent de Booleaanse EN-bewerking. |
|| |
Booleaanse operators | Berekent de Booleaanse OR-bewerking. |
Bitsgewijze operatoren
In de volgende tabel worden bitsgewijze operators beschreven.
Symbool of operator | Koppelingen | Description |
---|---|---|
&&& |
Bitsgewijze operators | Berekent de bitsgewijze AND-bewerking. |
<<< |
Bitsgewijze operators | Hiermee worden bits in de hoeveelheid aan de linkerkant naar links verplaatst door het aantal bits dat aan de rechterkant is opgegeven. |
>>> |
Bitsgewijze operators | Hiermee worden bits in de hoeveelheid aan de linkerkant naar rechts verplaatst door het aantal plaatsen dat aan de rechterkant is opgegeven. |
^^^ |
Bitsgewijze operators | Berekent de bitwise exclusieve OR-bewerking. |
||| |
Bitsgewijze operators | Berekent de bitsgewijze OR-bewerking. |
~~~ |
Bitsgewijze operators | Berekent de bitwise NOT-bewerking. |
Functiesymbolen en operatoren
In de volgende tabel worden de operators en symbolen beschreven die betrekking hebben op functies.
Symbool of operator | Koppelingen | Description |
---|---|---|
-> |
Functies | In functie-expressies wordt het invoerpatroon gescheiden van de uitvoerexpressie. |
|> |
Functies | Hiermee wordt het resultaat van de linkerkant doorgegeven aan de functie aan de rechterkant (doorstuurpijpoperator). |
||> |
( ||> )<'T1,'T2,'U> , functie | Hiermee wordt de tuple van twee argumenten aan de linkerkant doorgegeven aan de functie aan de rechterkant. |
|||> |
( |||> )<'T1,'T2,'T3,'U> , functie | Hiermee wordt de tupel van drie argumenten aan de linkerkant doorgegeven aan de functie aan de rechterkant. |
>> |
Functies | Stelt twee functies samen (doorstuurcompositieoperator). |
<< |
Functies | Stelt twee functies in omgekeerde volgorde samen; de tweede wordt eerst uitgevoerd (achterwaartse samenstellingsoperator). |
<| |
Functies | Geeft het resultaat van de expressie aan de rechterkant door aan de functie aan de linkerkant (operator voor achterwaartse pijpen). |
<|| |
( <|| )<' T1,'T2,'U> , functie | Hiermee wordt de tuple van twee argumenten aan de rechterkant doorgegeven aan de functie aan de linkerkant. |
<||| |
( <||| )<' T1,'T2,'T3,'U> , functie | Geeft de tuple van drie argumenten aan de rechterkant door aan de functie aan de linkerkant. |
Symbolen en operatoren typen
In de volgende tabel worden symbolen beschreven die betrekking hebben op typeannotatie en typetests.
Symbool of operator | Koppelingen | Description |
---|---|---|
-> |
Functies | In functietypen worden argumenten en retourwaarden gescheiden en wordt ook een resultaat in reeksexpressies geretourneerd. |
: |
Functies | In een typeaantekening scheidt u een parameter of lidnaam van het type. |
:> |
Cast-conversies en conversies | Converteert een type naar een type dat hoger is in de hiërarchie. |
:? |
Expressies vergelijken | Retourneert true of de waarde overeenkomt met het opgegeven type (inclusief als het een subtype is); anders wordt (typetestoperator) geretourneerd false . |
:?> |
Cast-conversies en conversies | Converteert een type naar een type dat lager in de hiërarchie is. |
# |
Flexibele typen | Bij gebruik met een type wordt een flexibel type aangegeven, dat verwijst naar een type of een van de afgeleide typen. |
' |
Automatische generalisatie | Geeft een algemene typeparameter aan. |
<...> |
Automatische generalisatie | Type parameters voor scheidingstekens. |
^ |
Parameters voor statisch opgelost type Tekenreeksen |
|
{} |
Klasse of record | Bij gebruik met het type trefwoord wordt een klasse of record gescheiden. Het type is een klasse wanneer leden worden gedeclareerd of het class trefwoord wordt gebruikt. Anders is het een record. |
{||} |
Anonieme record | Geeft een anonieme record aan |
Symbolen die worden gebruikt in opzoek- en segmentexpressies voor leden
In de volgende tabel worden aanvullende symbolen beschreven die worden gebruikt in opzoek- en segmentexpressies voor leden.
Symbool of operator | Koppelingen | Description |
---|---|---|
. |
Leden | Hiermee wordt een lid geopend en worden afzonderlijke namen gescheiden in een volledig gekwalificeerde naam. |
[...] of .[...] |
Matrices Geïndexeerde eigenschappen Segmentexpressies |
Indexeert in een matrix, tekenreeks of verzameling of neemt een segment van een verzameling. |
Symbolen die worden gebruikt in tuple, lijst, matrix, eenheidexpressies en patronen
In de volgende tabel worden symbolen beschreven die betrekking hebben op tuples, lijsten, eenheidswaarden en matrices.
Symbool of operator | Koppelingen | Description |
---|---|---|
( ) |
Type eenheid | Vertegenwoordigt de enkele waarde van het eenheidstype. |
, |
Tupels | Scheidt de elementen van een tuple of typ parameters. |
:: |
Lijsten Expressies vergelijken |
|
@ |
Lijsten | Voegt twee lijsten samen. |
[...] |
Lijsten | Hiermee worden de elementen van een lijst gescheiden. |
[|...|] |
Matrices | Hiermee worden de elementen van een matrix gescheiden. |
Symbolen die worden gebruikt in imperatieve expressies
In de volgende tabel worden aanvullende symbolen beschreven die worden gebruikt in expressies.
Symbool of operator | Koppelingen | Description |
---|---|---|
<- |
Waarden | Hiermee wordt een waarde toegewezen aan een variabele. |
; |
Uitgebreide syntaxis |
Scheidt expressies (meestal gebruikt in uitgebreide syntaxis). Hiermee worden ook elementen van een lijst of velden van een record gescheiden. |
Aanvullende symbolen die worden gebruikt in reeksen en berekeningsexpressies
In de volgende tabel worden aanvullende symbolen beschreven die worden gebruikt in reeksen en berekeningsexpressies.
Symbool of operator | Koppelingen | Description |
---|---|---|
-> |
Reeksen | Geeft een expressie (in reeksexpressies); gelijk aan de do yield trefwoorden. |
! |
Berekeningsexpressies | Na een trefwoord wordt een gewijzigde versie van het gedrag van het trefwoord aangegeven, zoals bepaald door een berekeningsexpressie. |
Aanvullende symbolen die worden gebruikt in overeenkomende patronen
In de volgende tabel worden symbolen beschreven die betrekking hebben op patroonkoppeling.
Symbool of operator | Koppelingen | Description |
---|---|---|
-> |
Expressies vergelijken | Wordt gebruikt in overeenkomende expressies. |
& |
Expressies vergelijken |
|
_ |
Expressies vergelijken Generics |
|
| |
Expressies vergelijken | Afzonderlijke overeenkomstgevallen, afzonderlijke gediscrimineerde samenvoegingen en opsommingswaarden worden gescheiden. |
Aanvullende symbolen die worden gebruikt in declaraties
In de volgende tabel worden symbolen beschreven die betrekking hebben op declaraties.
Symbool of operator | Koppelingen | Description |
---|---|---|
(|...|) |
Actieve patronen | Scheidingstekens voor een actieve patroonnaam. Ook wel banaanclips genoemd. |
? |
Parameters en argumenten | Hiermee geeft u een optioneel argument. |
~~ |
Overbelasting van operator | Wordt gebruikt om een overbelasting voor de unaire negatieoperator te declareren. |
~- |
Overbelasting van operator | Wordt gebruikt om een overbelasting voor de unaire min-operator te declareren. |
~+ |
Overbelasting van operator | Wordt gebruikt om een overbelasting voor de unaire plusoperator te declareren. |
Aanvullende symbolen die worden gebruikt in aanhalingstekens
In de volgende tabel worden symbolen beschreven die betrekking hebben op code-aanhalingstekens.
Symbool of operator | Koppelingen | Description |
---|---|---|
<@...@> |
Code-aanhalingstekens | Scheidingstekens voor een getypte codeaanhalingsteken. |
<@@...@@> |
Code-aanhalingstekens | Scheidingstekens voor een niet-getypte codeaanhalingsteken. |
% |
Code-aanhalingstekens | Wordt gebruikt voor het segmenteren van expressies in getypte code-aanhalingstekens. |
%% |
Code-aanhalingstekens | Wordt gebruikt voor het segmenteren van expressies in niet-getypte code-aanhalingstekens. |
Dynamische opzoekoperators
In de volgende tabel worden aanvullende symbolen beschreven die worden gebruikt in dynamische opzoekexpressies. Ze worden doorgaans niet gebruikt in routine-F#-programmering en er worden geen implementaties van deze operator geboden in de F#-kernbibliotheek.
Symbool of operator | Koppelingen | Description |
---|---|---|
? |
Wordt gebruikt als operator voor dynamische methode- en eigenschapsaanroepen. | |
? ... <- ... |
Wordt gebruikt als operator voor het instellen van dynamische eigenschappen. |
Null-operatoren in query's
Null-operators worden gedefinieerd voor gebruik in Query-expressies. In de volgende tabel ziet u deze operators.
Symbool of operator | Koppelingen | Description |
---|---|---|
%? |
Null-operatoren | Berekent de rest van het gehele getal wanneer de rechterkant een null-type is. |
*? |
Null-operatoren | Vermenigvuldigt de linker- en rechterkant, wanneer de rechterkant een null-type is. |
+? |
Null-operatoren | Hiermee voegt u de linker- en rechterkant toe wanneer de rechterkant een null-type is. |
-? |
Null-operatoren | Trekt de rechterkant van de linkerkant af wanneer de rechterkant een null-type is. |
/? |
Null-operatoren | Verdeelt de linkerkant aan de rechterkant, wanneer de rechterkant een null-type is. |
<? |
Null-operatoren | Berekent de minder dan bewerking wanneer de rechterkant een null-type is. |
<>? |
Null-operatoren | Berekent de bewerking 'niet gelijk aan' wanneer de rechterkant een null-type is. |
<=? |
Null-operatoren | Berekent de bewerking 'kleiner dan of gelijk aan' wanneer de rechterkant een null-type is. |
=? |
Null-operatoren | Berekent de 'gelijk'-bewerking wanneer de rechterkant een null-type is. |
>? |
Null-operatoren | Berekent de bewerking 'groter dan', wanneer de rechterkant een null-type is. |
>=? |
Null-operatoren | Berekent de bewerking 'groter dan of gelijk' wanneer de rechterkant een null-type is. |
?>= , ?> , ?<= , ?< , ?= , ?<> , ?+ , ?- , ?* , ?/ |
Null-operatoren | Gelijk aan de overeenkomstige operatoren zonder ? voorvoegsel, waarbij een null-type aan de linkerkant staat. |
>=? , >? , <=? , <? , =? , <>? , +? , -? , *? , /? |
Null-operatoren | Gelijk aan de overeenkomstige operatoren zonder ? achtervoegsel, waarbij een null-type aan de rechterkant staat. |
?>=? , ?>? , ?<=? , ?<? , ?=? , ?<>? , ?+? , ?-? , ?*? , ?/? |
Null-operatoren | Gelijk aan de bijbehorende operatoren zonder de omringende vraagtekens, waarbij beide zijden nullable-typen zijn. |
Verwijzingsceloperators (afgeschaft)
In de volgende tabel worden symbolen beschreven die betrekking hebben op verwijzingscellen. Het gebruik van deze operators genereert adviesberichten vanaf F# 6. Zie Adviesberichten voor verwijzingscelbewerkingen voor meer informatie.
Symbool of operator | Koppelingen | Description |
---|---|---|
! |
Verwijzingscellen | Deductie van een verwijzingscel. |
:= |
Verwijzingscellen | Hiermee wordt een waarde toegewezen aan een verwijzingscel. |
Bewerkingsvolgorde van operators
In de volgende tabel ziet u de volgorde van prioriteit van operators en andere expressietrefwoorden in F#, op volgorde van laagste prioriteit tot de hoogste prioriteit. Ook vermeld is de associativiteit, indien van toepassing.
Operator | Associativiteit |
---|---|
as |
Rechts |
when |
Rechts |
| (pijp) |
Links |
; |
Rechts |
let |
Niet-gekoppeld |
function , fun , match , try |
Niet-gekoppeld |
if |
Niet-gekoppeld |
not |
Rechts |
-> |
Rechts |
:= |
Rechts |
, |
Niet-gekoppeld |
or , || |
Links |
& , && |
Links |
:> , :?> |
Rechts |
< op, > op, = | op, op, & op, & $ (inclusief <<< , >>> , ||| , ) &&& |
Links |
^ Op(inclusief ^^^ ) |
Rechts |
:: |
Rechts |
:? |
Niet associatief |
- op, + op |
Van toepassing op infixgebruik van deze symbolen |
* op, / op, % op |
Links |
** Op |
Rechts |
f x (functietoepassing)(inclusief lazy x , assert x ) |
Links |
| (patroonovereenkomst) |
Rechts |
operatoren voor voorvoegsels (+ op, - op, % %% , , & , && ! op, ~ op) |
Links |
. |
Links |
f(x) |
Links |
f< Typen> |
Links |
F# ondersteunt het overbelasten van aangepaste operatoren. Dit betekent dat u uw eigen operators kunt definiëren. In de vorige tabel kan op elke geldige (mogelijk lege) reeks operatortekens zijn, ofwel ingebouwd of door de gebruiker gedefinieerd. U kunt deze tabel dus gebruiken om te bepalen welke reeks tekens moet worden gebruikt voor een aangepaste operator om het gewenste prioriteitsniveau te bereiken. Voorlooptekens .
worden genegeerd wanneer de compiler prioriteit bepaalt.