Symbol- och operatorreferens
Den här artikeln innehåller tabeller som beskriver de symboler och operatorer som används i F# och innehåller en kort beskrivning av var och en. Vissa symboler och operatorer har två eller flera poster när de används i flera roller.
Kommentarer, kompilatordirektiv och attributsymboler
I följande tabell beskrivs symboler relaterade till kommentarer, kompilatordirektiv och attribut.
Symbol eller operator | Länkar | Description |
---|---|---|
(*...*) |
Avgränsar en kommentar som kan sträcka sig över flera rader. | |
// |
Anger början på en kommentar med en rad. | |
/// |
XML-dokumentation | Anger en XML-kommentar. |
# |
Kompilatordirektiv | Prefixar ett preprocessor- eller kompilatordirektiv. |
[<...>] |
Attribut | Avgränsar ett attribut. |
Sträng- och identifierarsymboler
I följande tabell beskrivs symboler relaterade till strängar.
Symbol eller operator | Länkar | Description |
---|---|---|
" |
Strängar | Avgränsar en textsträng. |
@" |
Strängar | Startar en ordagrann textsträng, som kan innehålla omvänt snedstreck och andra tecken. |
""" |
Strängar | Avgränsar en trippelciterad textsträng, som kan innehålla omvänt snedstreck, dubbla citattecken och andra tecken. |
$" |
Interpolerade strängar | Startar en interpolerad sträng. |
' |
Literaler | Avgränsar en literal med ett tecken. |
``...`` |
Avgränsar en identifierare som annars inte skulle vara en juridisk identifierare, till exempel ett språknyckelord. | |
\ |
Strängar | Undflyr nästa tecken. används i tecken- och strängliteraler. |
Aritmetiska operatorer
I följande tabell beskrivs de aritmetiska operatorerna.
Symbol eller operator | Länkar | Description |
---|---|---|
+ |
Aritmetiska operatorer |
|
- |
Aritmetiska operatorer |
|
* |
Aritmetiska operatorer Tupplar Måttenheter |
|
/ |
Aritmetiska operatorer Måttenheter |
|
% |
Aritmetiska operatorer | Beräknar heltalsresterna. |
** |
Aritmetiska operatorer | Beräknar exponentiationsåtgärden (x ** y innebär x till kraften i y ). |
Jämförelseoperatorer
I följande tabell beskrivs jämförelseoperatorerna.
Symbol eller operator | Länkar | Description |
---|---|---|
< |
Aritmetiska operatorer | Beräknar mindre än åtgärden. |
<> |
Aritmetiska operatorer | Returnerar true om den vänstra sidan inte är lika med höger sida. Annars returneras falskt. |
<= |
Aritmetiska operatorer | Returnerar true om den vänstra sidan är mindre än eller lika med den högra sidan. Annars returneras false . |
= |
Aritmetiska operatorer | Returnerar true om den vänstra sidan är lika med den högra sidan. Annars returneras false . |
> |
Aritmetiska operatorer | Returnerar true om den vänstra sidan är större än höger sida. Annars returneras false . |
>= |
Aritmetiska operatorer | Returnerar true om den vänstra sidan är större än eller lika med höger sida. Annars returneras false . |
Booleska operatorer
I följande tabell beskrivs symbolerna för aritmetiska och booleska operatorer.
Symbol eller operator | Länkar | Description |
---|---|---|
&& |
Booleska operatorer | Beräknar den booleska AND-åtgärden. |
|| |
Booleska operatorer | Beräknar den booleska OR-åtgärden. |
Bitvisa operatorer
I följande tabell beskrivs bitvis operatorer.
Symbol eller operator | Länkar | Description |
---|---|---|
&&& |
Bitvisoperatorer | Beräknar bitvis AND-åtgärden. |
<<< |
Bitvisoperatorer | Flyttar bitar i kvantiteten till vänster med det antal bitar som anges på höger sida. |
>>> |
Bitvisoperatorer | Flyttar bitar i kvantiteten på vänster sida till höger med det antal platser som anges på höger sida. |
^^^ |
Bitvisoperatorer | Beräknar den bitvis exklusiva OR-åtgärden. |
||| |
Bitvisoperatorer | Beräknar bitvis OR-åtgärden. |
~~~ |
Bitvisoperatorer | Beräknar bitvis NOT-åtgärden. |
Funktionssymboler och operatorer
I följande tabell beskrivs operatorer och symboler som är relaterade till funktioner.
Symbol eller operator | Länkar | Description |
---|---|---|
-> |
Funktioner | I funktionsuttryck separerar indatamönstret från utdatauttrycket. |
|> |
Funktioner | Skickar resultatet från vänster sida till funktionen på höger sida (framåtrörsoperator). |
||> |
( ||> )<'T1,'T2'U> Function | Skickar tuppeln med två argument till vänster till funktionen till höger. |
|||> |
( |||> )<'T1,'T2,'T3'U> Function | Skickar tuppeln med tre argument till vänster till funktionen till höger. |
>> |
Funktioner | Skapar två funktioner (framåtkompositionsoperator). |
<< |
Funktioner | Skapar två funktioner i omvänd ordning; den andra körs först (bakåtkompositionsoperator). |
<| |
Funktioner | Skickar resultatet av uttrycket på höger sida till funktionen på vänster sida (bakåtrörsoperator). |
<|| |
( <|| )<' T1,'T2'U-funktion> | Skickar tuppeln med två argument på höger sida till funktionen till vänster. |
<||| |
( <||| )<' T1,'T2,'T3'U> Function | Skickar tuppeln med tre argument på höger sida till funktionen till vänster. |
Skriv symboler och operatorer
I följande tabell beskrivs symboler relaterade till typanteckning och typtester.
Symbol eller operator | Länkar | Description |
---|---|---|
-> |
Funktioner | I funktionstyper avgränsar argument och returvärden också ett resultat i sekvensuttryck. |
: |
Funktioner | I en typanteckning separerar en parameter eller ett medlemsnamn från dess typ. |
:> |
Gjutning och konvertering | Konverterar en typ till en typ som är högre i hierarkin. |
:? |
Matcha uttryck | Returnerar true om värdet matchar den angivna typen (inklusive om det är en undertyp), annars returneras false (typtestoperator). |
:?> |
Gjutning och konvertering | Konverterar en typ till en typ som är lägre i hierarkin. |
# |
Flexibla typer | När det används med en typ anger en flexibel typ, som refererar till en typ eller någon av dess härledda typer. |
' |
Automatisk generalisering | Anger en allmän typparameter. |
<...> |
Automatisk generalisering | Avgränsar typparametrar. |
^ |
Statiskt lösta typparametrar Strängar |
|
{} |
Klass eller post | När det används med nyckelordet type avgränsar du en klass eller post. Typen är en klass när medlemmar deklareras eller nyckelordet class används. Annars är det en post. |
{||} |
Anonym post | Anger en anonym post |
Symboler som används i medlemsuppslag och utsnittsuttryck
I följande tabell beskrivs ytterligare symboler som används i medlemsuppslag och utsnittsuttryck.
Symbol eller operator | Länkar | Description |
---|---|---|
. |
Medlemmar | Öppnar en medlem och separerar enskilda namn i ett fullständigt kvalificerat namn. |
[...] eller .[...] |
Matriser Indexerade egenskaper Segmentuttryck |
Indexerar i en matris, sträng eller samling eller tar en del av en samling. |
Symboler som används i tupplar, listor, matriser, enhetsuttryck och mönster
I följande tabell beskrivs symboler relaterade till tupplar, listor, enhetsvärden och matriser.
Symbol eller operator | Länkar | Description |
---|---|---|
( ) |
Enhetstyp | Representerar enhetstypens enskilda värde. |
, |
Tupplar | Separerar elementen i en tupplar eller typparametrar. |
:: |
Listor Matcha uttryck |
|
@ |
Listor | Sammanfogar två listor. |
[...] |
Listor | Avgränsar elementen i en lista. |
[|...|] |
Matriser | Avgränsar elementen i en matris. |
Symboler som används i imperativa uttryck
I följande tabell beskrivs ytterligare symboler som används i uttryck.
Symbol eller operator | Länkar | Description |
---|---|---|
<- |
Värden | Tilldelar ett värde till en variabel. |
; |
Utförlig syntax |
Avgränsar uttryck (används främst i utförlig syntax). Separerar även element i en lista eller fält i en post. |
Ytterligare symboler som används i sekvenser och beräkningsuttryck
I följande tabell beskrivs ytterligare symboler som används i sekvenser och beräkningsuttryck.
Symbol eller operator | Länkar | Description |
---|---|---|
-> |
Sekvenser | Ger ett uttryck (i sekvensuttryck); motsvarar nyckelorden do yield . |
! |
Beräkningsuttryck | Efter ett nyckelord anger en modifierad version av nyckelordets beteende som styrs av ett beräkningsuttryck. |
Ytterligare symboler som används i matchningsmönster
I följande tabell beskrivs symboler relaterade till mönstermatchning.
Symbol eller operator | Länkar | Description |
---|---|---|
-> |
Matcha uttryck | Används i matchningsuttryck. |
& |
Matcha uttryck |
|
_ |
Matcha uttryck Generika |
|
| |
Matcha uttryck | Avgränsar enskilda matchningsfall, individuella diskrimineringsfall och uppräkningsvärden. |
Ytterligare symboler som används i deklarationer
I följande tabell beskrivs symboler som är relaterade till deklarationer.
Symbol eller operator | Länkar | Description |
---|---|---|
(|...|) |
Aktiva mönster | Avgränsar ett aktivt mönsternamn. Kallas även bananklipp. |
? |
Parametrar och argument | Anger ett valfritt argument. |
~~ |
Operatörsöverlagring | Används för att deklarera en överlagring för unary negation-operatorn. |
~- |
Operatörsöverlagring | Används för att deklarera en överlagring för den oföränderliga minusoperatorn. |
~+ |
Operatörsöverlagring | Används för att deklarera en överlagring för unary plus-operatorn. |
Ytterligare symboler som används i citattecken
I följande tabell beskrivs symboler relaterade till kodcitat.
Symbol eller operator | Länkar | Description |
---|---|---|
<@...@> |
Kodcitat | Avgränsar en typgiven kodcitat. |
<@@...@@> |
Kodcitat | Avgränsar en otypad kodcitat. |
% |
Kodcitat | Används för att dela uttryck i inskrivna kodcitat. |
%% |
Kodcitat | Används för att dela upp uttryck i otypade kodcitat. |
Dynamiska uppslagsoperatorer
I följande tabell beskrivs ytterligare symboler som används i dynamiska uppslagsuttryck. De används vanligtvis inte i rutinmässig F#-programmering och inga implementeringar av den här operatorn tillhandahålls i F#-kärnbiblioteket.
Symbol eller operator | Länkar | Description |
---|---|---|
? |
Används som operatör för dynamiska metod- och egenskapsanrop. | |
? ... <- ... |
Används som operator för att ange dynamiska egenskaper. |
Null-operatorer i frågor
Null-operatorer definieras för användning i frågeuttryck. Följande tabell visar dessa operatorer.
Symbol eller operator | Länkar | Description |
---|---|---|
%? |
Operatorer som kan ogiltigas | Beräknar heltalsresterna när den högra sidan är en nullbar typ. |
*? |
Operatorer som kan ogiltigas | Multiplicerar vänster och höger sida när den högra sidan är en nullbar typ. |
+? |
Operatorer som kan ogiltigas | Lägger till vänster och höger sida, när den högra sidan är en nullbar typ. |
-? |
Operatorer som kan ogiltigas | Subtraherar den högra sidan från vänster sida, när den högra sidan är en nullbar typ. |
/? |
Operatorer som kan ogiltigas | Delar vänster sida vid höger sida, när den högra sidan är en nullbar typ. |
<? |
Operatorer som kan ogiltigas | Beräknar mindre än åtgärden när den högra sidan är en nullbar typ. |
<>? |
Operatorer som kan ogiltigas | Beräknar åtgärden "inte lika" när den högra sidan är en nullbar typ. |
<=? |
Operatorer som kan ogiltigas | Beräknar åtgärden "mindre än eller lika med" när den högra sidan är en nullbar typ. |
=? |
Operatorer som kan ogiltigas | Beräknar åtgärden "lika" när den högra sidan är en nullbar typ. |
>? |
Operatorer som kan ogiltigas | Beräknar åtgärden "större än" när den högra sidan är en nullbar typ. |
>=? |
Operatorer som kan ogiltigas | Beräknar åtgärden "större än eller lika med" när den högra sidan är en nullbar typ. |
?>= , ?> , ?<= , ?< , ?= , ?<> , ?+ , ?- , ?* , ?/ |
Operatorer som kan ogiltigas | Motsvarar motsvarande operatorer utan ? prefix, där en nullbar typ finns till vänster. |
>=? , >? , <=? , <? , =? , <>? , +? , -? , *? , /? |
Operatorer som kan ogiltigas | Motsvarar motsvarande operatorer utan ? suffix, där en nullbar typ finns till höger. |
?>=? , ?>? , ?<=? , ?<? , ?=? , ?<>? , ?+? , ?-? , ?*? , ?/? |
Operatorer som kan ha värdet Null | Motsvarar motsvarande operatorer utan omgivande frågetecken, där båda sidor är nullbara typer. |
Referenscelloperatorer (inaktuella)
I följande tabell beskrivs symboler relaterade till referensceller. Användningen av dessa operatorer genererar rådgivande meddelanden från och med F# 6. Mer information finns i Rådgivande meddelanden om referenscellåtgärder.
Symbol eller operator | Länkar | Description |
---|---|---|
! |
Referensceller | Refererar till en referenscell. |
:= |
Referensceller | Tilldelar ett värde till en referenscell. |
Prioritet för operator
I följande tabell visas prioritetsordningen för operatorer och andra uttrycksnyckelord i F#, i ordning från lägsta prioritet till högsta prioritet. I listan visas även associativitet, om tillämpligt.
Operator | Associativitet |
---|---|
as |
Höger |
when |
Höger |
| (rör) |
Vänster |
; |
Höger |
let |
Icke-associerande |
function , fun , match , try |
Icke-associerande |
if |
Icke-associerande |
not |
Höger |
-> |
Höger |
:= |
Höger |
, |
Icke-associerande |
or , || |
Vänster |
& , && |
Vänster |
:> , :?> |
Höger |
< op, > op, = , | op, & op, & , $ (inklusive <<< , >>> , ||| , &&& ) |
Vänster |
^ Op(inklusive ^^^ ) |
Höger |
:: |
Höger |
:? |
Inte associativ |
- op, + op |
Gäller för infix-användning av dessa symboler |
* op, / op, % op |
Vänster |
** Op |
Höger |
f x (funktionsprogram)(inklusive lazy x , assert x ) |
Vänster |
| (mönstermatchning) |
Höger |
prefixoperatorer (+ op, - op, % , %% , & && , op! , ~ op) |
Vänster |
. |
Vänster |
f(x) |
Vänster |
f< Typer> |
Vänster |
F# stöder anpassad operatörsöverlagring. Det innebär att du kan definiera dina egna operatorer. I föregående tabell kan op vara valfri giltig (eventuellt tom) sekvens med operatortecken, antingen inbyggda eller användardefinierade. Därför kan du använda den här tabellen för att avgöra vilken sekvens med tecken som ska användas för en anpassad operator för att uppnå önskad prioritetsnivå. Inledande .
tecken ignoreras när kompilatorn bestämmer prioritet.