Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
Kommentar, kompilatordirektiv och attributsymboler
I följande tabell beskrivs symboler relaterade till kommentarer, kompilatordirektiv och attribut.
| Symbol eller operator | Länkar | Beskrivning | 
|---|---|---|
(*...*) | 
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 | Prefix för ett preprocessor- eller kompilatordirektiv. | 
[<...>] | 
Attribut | Avgränsar ett attribut. | 
Sträng- och identifierarsymboler
I följande tabell beskrivs symboler som är relaterade till strängar.
| Symbol eller operator | Länkar | Beskrivning | 
|---|---|---|
" | 
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 | Beskrivning | 
|---|---|---|
+ | 
Aritmetiska operatorer | 
  | 
- | 
Aritmetiska operatorer | 
  | 
* | 
              Aritmetiska operatorer tupler Måttenheter  | 
  | 
/ | 
              Aritmetiska operatorer Måttenheter  | 
  | 
% | 
Aritmetiska operatorer | Beräknar heltalsresterna. | 
** | 
Aritmetiska operatorer | Beräknar exponentationsåtgärden (x ** y betyder x till kraften i y). | 
Jämförelseoperatorer
I följande tabell beskrivs jämförelseoperatorerna.
| Symbol eller operator | Länkar | Beskrivning | 
|---|---|---|
< | 
Aritmetiska operatorer | Beräknar mindre än-åtgärden. | 
<> | 
Aritmetiska operatorer | Returnerar true om den vänstra sidan inte är lika med den högra sidan. Annars returneras false. | 
<= | 
Aritmetiska operatorer | Returnerar true om den vänstra sidan är mindre än eller lika med höger sida. 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 den högra sidan. Annars returneras false. | 
>= | 
Aritmetiska operatorer | Returnerar true om den vänstra sidan är större än eller lika med den högra sidan. Annars returneras false. | 
Booleska operatorer
I följande tabell beskrivs symbolerna för aritmetiska och booleska operatorer.
| Symbol eller operator | Länkar | Beskrivning | 
|---|---|---|
&& | 
booleska operatorer | Beräknar den booleska AND-åtgärden. | 
|| | 
booleska operatorer | Beräknar den booleska OR-åtgärden. | 
Bitvisa operatörer
I följande tabell beskrivs bitvis operatorer.
| Symbol eller operator | Länkar | Beskrivning | 
|---|---|---|
&&& | 
Bitwise-operatorer | Beräknar bitvis AND-åtgärden. | 
<<< | 
Bitwise-operatorer | Flyttar bitar i kvantiteten till vänster med det antal bitar som anges till höger. | 
>>> | 
Bitwise-operatorer | Flyttar bitar i kvantiteten till vänster till höger med det antal platser som anges till höger. | 
^^^ | 
Bitwise-operatorer | Beräknar den bitvis exklusiva OR-åtgärden. | 
||| | 
Bitwise-operatorer | Beräknar bitvis OR-åtgärden. | 
~~~ | 
Bitwise-operatorer | 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 | Beskrivning | 
|---|---|---|
-> | 
Funktioner | I funktionsuttryck separerar indatamönstret från utdatauttrycket. | 
|> | 
Funktioner | Skickar resultatet från vänster sida till funktionen på höger sida (främre röroperator). | 
||> | 
( ||> )<'T1,'T2,'U> Funktion | Skickar tuppeln med två argument på vänster sida till funktionen till höger. | 
|||> | 
( |||> )<'T1,'T2,'T3,'U> Funktion | Skickar tuppeln med tre argument till vänster till funktionen till höger. | 
>> | 
Funktioner | Består av två funktioner (framåtkompositionsoperator). | 
<< | 
Funktioner | Består av 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> Funktion | Skickar tuppeln med tre argument på höger sida till funktionen till vänster. | 
Typsymboler och operatorer
I följande tabell beskrivs symboler relaterade till typanteckning och typtester.
| Symbol eller operator | Länkar | Beskrivning | 
|---|---|---|
-> | 
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 konverteringar | Konverterar en typ till en typ som är högre i hierarkin. | 
:? | 
Matchuttryck | Returnerar true om värdet matchar den angivna typen (inklusive om det är en undertyp), annars returneras false (typtestoperator). | 
:?> | 
Gjutning och konverteringar | 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 | Beskrivning | 
|---|---|---|
. | 
Medlemmar | Öppnar en medlem och separerar enskilda namn i ett fullständigt kvalificerat namn. | 
              [...] eller .[...] | 
              arrayer Indexerade egenskaper Utsnittsuttryck  | 
Indexerar till 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 | Beskrivning | 
|---|---|---|
( ) | 
Enhetstyp | Representerar enhetstypens enskilda värde. | 
, | 
tupler | Separerar elementen i en tupplar eller typparametrar. | 
:: | 
              listor Matchuttryck  | 
  | 
@ | 
listor | Sammanfogar två listor. | 
[...] | 
listor | Avgränsar elementen i en lista. | 
[|...|] | 
arrayer | 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 | Beskrivning | 
|---|---|---|
<- | 
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 | Beskrivning | 
|---|---|---|
-> | 
Sekvenser | Ger ett uttryck (i sekvensuttryck); motsvarar nyckelorden do yield . | 
! | 
Beräkningsuttryck | Efter ett nyckelord anger en ändrad 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 | Beskrivning | 
|---|---|---|
-> | 
Matchuttryck | Används i matchningsuttryck. | 
& | 
Mönstermatchning | 
  | 
_ | 
              Matchuttryck Generiska typer  | 
  | 
| | 
Matchuttryck | 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 | Beskrivning | 
|---|---|---|
(|...|) | 
aktiva mönster | Avgränsar ett aktivt mönsternamn. Kallas även bananklipp. | 
? | 
Parametrar och argument | Anger ett valfritt argument. | 
~~ | 
Operatoröverlagring | Används för att deklarera en överlagring för unary negation-operatorn. | 
~- | 
Operatoröverlagring | Används för att deklarera en överlagring för unary minus-operatorn. | 
~+ | 
Operatorö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 kodofferter.
| Symbol eller operator | Länkar | Beskrivning | 
|---|---|---|
<@...@> | 
Kodcitat | Avgränsar en angiven kodcitat. | 
<@@...@@> | 
Kodcitat | Avgränsar en otypad kodcitat. | 
% | 
Kodcitat | Används för att splitsa uttryck i inskrivna kodofferter. | 
%% | 
Kodcitat | Används för att splitsa uttryck till otypade kodofferter. | 
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 | Beskrivning | 
|---|---|---|
? | 
Används som operator för dynamiska metod- och egenskapsanrop. | |
? ... <- ... | 
Används som operator för att ange dynamiska egenskaper. | 
Nullbara 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 | Beskrivning | 
|---|---|---|
%? | 
Operatorer som kan ogiltigförklaras | Beräknar heltalsrester när den högra sidan är en nullbar typ. | 
*? | 
Operatorer som kan ogiltigförklaras | Multiplicerar vänster och höger sida när den högra sidan är en nullbar typ. | 
+? | 
Operatorer som kan ogiltigförklaras | Lägger till vänster och höger sida när den högra sidan är en nullbar typ. | 
-? | 
Operatorer som kan ogiltigförklaras | Subtraherar höger sida från vänster sida, när den högra sidan är en nullbar typ. | 
/? | 
Operatorer som kan ogiltigförklaras | Delar vänster sida vid höger sida, när den högra sidan är en nullbar typ. | 
<? | 
Operatorer som kan ogiltigförklaras | Beräknar mindre än-åtgärden när den högra sidan är en nullbar typ. | 
<>? | 
Operatorer som kan ogiltigförklaras | Beräknar åtgärden "inte lika" när den högra sidan är en nullbar typ. | 
<=? | 
Operatorer som kan ogiltigförklaras | Beräknar åtgärden "mindre än eller lika med" när den högra sidan är en nullbar typ. | 
=? | 
Operatorer som kan ogiltigförklaras | Beräknar åtgärden "lika" när den högra sidan är en nullbar typ. | 
>? | 
Operatorer som kan ogiltigförklaras | Beräknar åtgärden "större än" när den högra sidan är en nullbar typ. | 
>=? | 
Operatorer som kan ogiltigförklaras | Beräknar åtgärden "större än eller lika" när höger sida är en nullbar typ. | 
              ?>=, ?>, ?<=, ?<, ?=, ?<>, , ?+, ?-, , ?*?/ | 
Operatorer som kan ogiltigförklaras | Motsvarar motsvarande operatorer utan ? prefix, där en nullbar typ finns till vänster. | 
              >=?, >?, <=?, <?, =?, <>?, , +?, -?, , *?/? | 
Operatorer som kan ogiltigförklaras | Motsvarar motsvarande operatorer utan ? suffix, där en nullbar typ finns till höger. | 
              ?>=?, ?>?, ?<=?, ?<?, ?=?, ?<>?, , ?+?, ?-?, , ?*??/? | 
Operatorer som kan ogiltigförklaras | Motsvarar motsvarande operatorer utan omgivande frågetecken, där båda sidor är nullbara typer. | 
Referenscelloperatorer (inaktuella)
I följande tabell beskrivs symboler som är 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 referenscellsåtgärder.
| Symbol eller operator | Länkar | Beskrivning | 
|---|---|---|
! | 
Referensceller | Dereferences en referenscell. | 
:= | 
Referensceller | Tilldelar ett värde till en referenscell. | 
Operatorpriorence
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.
| Operatör | Associativitet | 
|---|---|
as | 
Höger | 
when | 
Höger | 
              | (rör) | 
Vänster | 
; | 
Höger | 
let | 
Icke-associerande | 
              function, fun, , matchtry | 
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 en 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 av 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.