Dela via


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.

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
  • När den används som binär operator lägger du till vänster och höger sida.
  • När den används som en unary-operator anger en positiv kvantitet. (Formellt genererar den samma värde med tecknet oförändrat.)
- Aritmetiska operatorer
  • När den används som binär operator subtraherar den högra sidan från vänster sida.
  • När den används som en unary-operator utför en negationsåtgärd.
* Aritmetiska operatorer

tupler

Måttenheter
  • När den används som binär operator multipliceras vänster och höger sida.
  • I typer anger du parkoppling i en tuppeln.
  • Används i måtttyper.
/ Aritmetiska operatorer

Måttenheter
  • Delar vänster sida (täljare) med höger sida (nämnare).
  • Används i måtttyper.
% 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
  • Anger typparametrar som måste matchas vid kompileringstillfället, inte vid körning.
  • Sammanfogar 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
  • Skapar en lista. Elementet till vänster läggs till i listan till höger.
  • Används i mönstermatchning för att separera delarna i en lista.
@ 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
  • Beräknar adressen till ett föränderligt värde för användning när du samverkar med andra språk.
  • Används i AND-mönster.
_ Matchuttryck

Generiska typer
  • Anger ett jokerteckenmönster.
  • Anger en anonym allmän parameter.
| 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.

Se även