Odwołanie do symboli i operatorów
Ten artykuł zawiera tabele opisujące symbole i operatory używane w programie F# oraz krótki opis każdego z nich. Niektóre symbole i operatory mają co najmniej dwa wpisy, jeśli są używane w wielu rolach.
Komentarze, dyrektywy kompilatora i symbole atrybutów
W poniższej tabeli opisano symbole związane z komentarzami, dyrektywami kompilatora i atrybutami.
Symbol lub operator | Linki | Opis |
---|---|---|
(*...*) |
Rozdziela komentarz, który może obejmować wiele wierszy. | |
// |
Wskazuje początek komentarza jedno wierszowego. | |
/// |
Dokumentacja XML | Wskazuje komentarz XML. |
# |
Dyrektywy kompilatora | Poprzedza dyrektywę preprocesora lub kompilatora. |
[<...>] |
Atrybuty | Rozdziela atrybut. |
Symbole ciągów i identyfikatorów
W poniższej tabeli opisano symbole związane z ciągami.
Symbol lub operator | Linki | Opis |
---|---|---|
" |
Ciągi | Rozdziela ciąg tekstowy. |
@" |
Ciągi | Uruchamia ciąg tekstowy dosłowny, który może zawierać ukośniki odwrotne i inne znaki. |
""" |
Ciągi | Rozdziela trzy cudzysłów ciąg tekstowy, który może zawierać ukośniki odwrotne, znaki podwójnego cudzysłowu i inne znaki. |
$" |
Ciągi interpolowane | Uruchamia ciąg interpolowany. |
' |
Literały | Rozdziela literał pojedynczego znaku. |
``...`` |
Rozdziela identyfikator, który w przeciwnym razie nie byłby identyfikatorem prawnym, takim jak słowo kluczowe języka. | |
\ |
Ciągi | Ucieczka następnego znaku; używany w literałach znaków i ciągów. |
Operatory arytmetyczne
W poniższej tabeli opisano operatory arytmetyczne.
Symbol lub operator | Linki | Opis |
---|---|---|
+ |
Operatory arytmetyczne |
|
- |
Operatory arytmetyczne |
|
* |
Operatory arytmetyczne Krotki Jednostki miary |
|
/ |
Operatory arytmetyczne Jednostki miary |
|
% |
Operatory arytmetyczne | Oblicza pozostałą liczbę całkowitą. |
** |
Operatory arytmetyczne | Oblicza operację potęgowania (x ** y oznacza x potęgę ).y |
Operatory porównania
W poniższej tabeli opisano operatory porównania.
Symbol lub operator | Linki | Opis |
---|---|---|
< |
Operatory arytmetyczne | Oblicza operację mniejsze niż. |
<> |
Operatory arytmetyczne | Zwraca true wartość , jeśli lewa strona nie jest równa prawej stronie; w przeciwnym razie zwraca wartość false. |
<= |
Operatory arytmetyczne | Zwraca true wartość , jeśli lewa strona jest mniejsza niż lub równa prawej stronie. W przeciwnym razie zwraca wartość false . |
= |
Operatory arytmetyczne | Zwraca true wartość , jeśli lewa strona jest równa prawej stronie; w przeciwnym razie zwraca wartość false . |
> |
Operatory arytmetyczne | Zwraca true wartość , jeśli lewa strona jest większa niż prawa strona; w przeciwnym razie zwraca wartość false . |
>= |
Operatory arytmetyczne | Zwraca true wartość , jeśli lewa strona jest większa niż lub równa prawej stronie. W przeciwnym razie zwraca wartość false . |
Operatory logiczne
W poniższej tabeli opisano symbole operatorów arytmetycznych i logicznych.
Symbol lub operator | Linki | Opis |
---|---|---|
&& |
Operatory logiczne | Oblicza operację logiczną AND. |
|| |
Operatory logiczne | Oblicza operację logiczną OR. |
Operatory bitowe
W poniższej tabeli opisano operatory bitowe.
Symbol lub operator | Linki | Opis |
---|---|---|
&&& |
Operatory | Oblicza bitową operację AND. |
<<< |
Operatory | Przesuwa bity w ilości po lewej stronie w lewo o liczbę bitów określoną po prawej stronie. |
>>> |
Operatory | Przesuwa bity w ilości po lewej stronie w prawo o liczbę miejsc określoną po prawej stronie. |
^^^ |
Operatory | Oblicza bitową wyłączną operację OR. |
||| |
Operatory | Oblicza bitową operację OR. |
~~~ |
Operatory | Oblicza bitową operację NOT. |
Symbole i operatory funkcji
W poniższej tabeli opisano operatory i symbole związane z funkcjami.
Symbol lub operator | Linki | Opis |
---|---|---|
-> |
Funkcje | W wyrażeniach funkcji wzorzec wejściowy jest oddzielany od wyrażenia wyjściowego. |
|> |
Funkcje | Przekazuje wynik lewej strony do funkcji po prawej stronie (operator potoku do przodu). |
||> |
( || )<'T1,'T2,'U> , funkcja | Przekazuje krotę dwóch argumentów po lewej stronie do funkcji po prawej stronie. |
|||> |
( ||| )<'T1,'T2,'T3,'U> , funkcja | Przekazuje krotę trzech argumentów po lewej stronie do funkcji po prawej stronie. |
>> |
Funkcje | Komponuje dwie funkcje (operator kompozycji do przodu). |
<< |
Funkcje | Komponuje dwie funkcje w odwrotnej kolejności; Drugi jest wykonywany jako pierwszy (operator kompozycji odwrotnej). |
<| |
Funkcje | Przekazuje wynik wyrażenia po prawej stronie do funkcji po lewej stronie (operator potoku do tyłu). |
<|| |
( || )<' T1,'T2,'U> , funkcja | Przekazuje krotę dwóch argumentów po prawej stronie do funkcji po lewej stronie. |
<||| |
( ||| )<' T1, 'T2,'T3,'U> , funkcja | Przekazuje krotę trzech argumentów po prawej stronie do funkcji po lewej stronie. |
Symbole i operatory typów
W poniższej tabeli opisano symbole związane z adnotacjami typów i testami typów.
Symbol lub operator | Linki | Opis |
---|---|---|
-> |
Funkcje | W typach funkcji rozdziela argumenty i zwracane wartości, zwraca również wynik w wyrażeniach sekwencji. |
: |
Funkcje | W adnotacji typu parametr lub nazwa członka oddziela od jego typu. |
:> |
Rzutowanie i konwersje | Konwertuje typ na typ, który znajduje się wyżej w hierarchii. |
:? |
Wyrażenia dopasowania | Zwraca true wartość , jeśli wartość pasuje do określonego typu (w tym jeśli jest to podtyp); false w przeciwnym razie zwraca wartość (operator testu typu). |
:?> |
Rzutowanie i konwersje | Konwertuje typ na typ, który znajduje się niżej w hierarchii. |
# |
Typy elastyczne | W przypadku korzystania z typu wskazuje typ elastyczny, który odwołuje się do typu lub dowolnego z jego typów pochodnych. |
' |
Automatyczna generalizacja | Wskazuje parametr typu ogólnego. |
<...> |
Automatyczna generalizacja | Parametry typu ograniczników. |
^ |
Statycznie rozwiązywane parametry typu Ciągi |
|
{} |
Klasa lub rekord | Gdy jest używany ze słowem type kluczowym , rozdziela klasę lub rekord. Typ jest klasą, gdy składowe są zadeklarowane lub używane jest class słowo kluczowe . W przeciwnym razie jest to rekord. |
{||} |
Rekord anonimowy | Oznacza rekord anonimowy |
Symbole używane w wyrażeniach wyszukiwania składowych i fragmentatorów
W poniższej tabeli opisano dodatkowe symbole używane w wyrażeniach wyszukiwania składowych i fragmentatorów.
Symbol lub operator | Linki | Opis |
---|---|---|
. |
Elementy członkowskie | Uzyskuje dostęp do członka i oddziela poszczególne nazwy w pełni kwalifikowanej nazwy. |
[...] lub .[...] |
Tablice Właściwości indeksowane Wyrażenia wycinka |
Indeksuje do tablicy, ciągu lub kolekcji albo pobiera wycinek kolekcji. |
Symbole używane w krotce, liście, tablicy, wyrażeniach jednostek i wzorcach
W poniższej tabeli opisano symbole związane z krotkami, listami, wartościami jednostek i tablicami.
Symbol lub operator | Linki | Opis |
---|---|---|
( ) |
Typ jednostki | Reprezentuje pojedynczą wartość typu jednostki. |
, |
Krotki | Oddziela elementy krotki lub parametrów typu. |
:: |
Listy Wyrażenia dopasowania |
|
@ |
Listy | Łączy dwie listy. |
[...] |
Listy | Rozdziela elementy listy. |
[|...|] |
Tablice | Rozdziela elementy tablicy. |
Symbole używane w wyrażeniach imperatywnych
W poniższej tabeli opisano dodatkowe symbole używane w wyrażeniach.
Symbol lub operator | Linki | Opis |
---|---|---|
<- |
Wartości | Przypisuje wartość do zmiennej. |
; |
Pełna składnia |
Oddziela wyrażenia (używane głównie w pełnej składni). Oddziela również elementy listy lub pól rekordu. |
Dodatkowe symbole używane w sekwencjach i wyrażeniach obliczeniowych
W poniższej tabeli opisano dodatkowe symbole używane w sekwencjach i wyrażeniach obliczeniowych.
Symbol lub operator | Linki | Opis |
---|---|---|
-> |
Sekwencje | Daje wyrażenie (w wyrażeniach sekwencji); jest odpowiednikiem słów do yield kluczowych. |
! |
Wyrażenia obliczeń | Po s słowach kluczowych wskazuje zmodyfikowaną wersję zachowania słowa kluczowego pod kontrolą wyrażenia obliczeniowego. |
Dodatkowe symbole używane we wzorcach dopasowania
W poniższej tabeli opisano symbole związane z dopasowywaniem do wzorca.
Symbol lub operator | Linki | Opis |
---|---|---|
-> |
Wyrażenia dopasowania | Używany w wyrażeniach dopasowania. |
& |
Wyrażenia dopasowania |
|
_ |
Wyrażenia dopasowania Typy ogólne |
|
| |
Wyrażenia dopasowania | Rozdziela poszczególne przypadki dopasowania, pojedyncze rozłączne przypadki unii i wartości wyliczenia. |
Dodatkowe symbole używane w deklaracjach
W poniższej tabeli opisano symbole związane z deklaracjami.
Symbol lub operator | Linki | Opis |
---|---|---|
(|...|) |
Wzorce aktywne | Rozdziela nazwę aktywnego wzorca. Nazywane również klipami bananów. |
? |
Parametry i argumenty | Określa opcjonalny argument. |
~~ |
Przeciążanie operatora | Służy do deklarowania przeciążenia dla operatora negacji unarnej. |
~- |
Przeciążanie operatora | Służy do deklarowania przeciążenia dla operatora unary minus. |
~+ |
Przeciążanie operatora | Służy do deklarowania przeciążenia dla operatora unary plus. |
Dodatkowe symbole używane w cudzysłowie
W poniższej tabeli opisano symbole związane z cudzysłowami kodu.
Symbol lub operator | Linki | Opis |
---|---|---|
<@...@> |
Cytaty kodu | Rozdziela wpisany cudzysłów kodu. |
<@@...@@> |
Cytaty kodu | Rozdziela nietypowany cudzysłów kodu. |
% |
Cytaty kodu | Służy do pisania wyrażeń do wpisanych cudzysłowów kodu. |
%% |
Cytaty kodu | Służy do ujednolicania wyrażeń w nietypowane cudzysłowy kodu. |
Operatory wyszukiwania dynamicznego
W poniższej tabeli opisano dodatkowe symbole używane w wyrażeniach wyszukiwania dynamicznego. Nie są one zwykle używane podczas rutynowego programowania w języku F#, a podstawowe biblioteki języka F# nie obejmują implementacji tych operatorów.
Symbol lub operator | Linki | Opis |
---|---|---|
? |
Używany jako operator dla wywołań metody dynamicznej i właściwości. | |
? ... <- ... |
Służy jako operator do ustawiania właściwości dynamicznych. |
Operatory dopuszczane wartością null w zapytaniach
Operatory dopuszczane wartością null są definiowane do użycia w wyrażeniach zapytań. W poniższej tabeli przedstawiono te operatory.
Symbol lub operator | Linki | Opis |
---|---|---|
%? |
Operatory dopuszczające wartość null | Oblicza resztę całkowitą, gdy prawa strona jest typem dopuszczanym wartość null. |
*? |
Operatory dopuszczające wartość null | Mnoży lewą i prawą stronę, gdy prawa strona jest typem dopuszczanym wartość null. |
+? |
Operatory dopuszczające wartość null | Dodaje lewą i prawą stronę, gdy prawa strona jest typem dopuszczanym do wartości null. |
-? |
Operatory dopuszczające wartość null | Odejmuje prawą stronę od lewej, gdy prawa strona jest typem dopuszczanym wartość null. |
/? |
Operatory dopuszczające wartość null | Dzieli lewą stronę przez prawą stronę, gdy prawa strona jest typem dopuszczanym wartość null. |
<? |
Operatory dopuszczające wartość null | Oblicza operację mniejszą niż, gdy prawa strona jest typem dopuszczanym wartość null. |
<>? |
Operatory dopuszczające wartość null | Oblicza operację "nie równa się", gdy prawa strona jest typem dopuszczanym wartość null. |
<=? |
Operatory dopuszczające wartość null | Oblicza operację "mniejsze niż lub równe", gdy prawa strona jest typem dopuszczanym wartość null. |
=? |
Operatory dopuszczające wartość null | Oblicza operację "equal", gdy prawa strona jest typem dopuszczanym wartość null. |
>? |
Operatory dopuszczające wartość null | Oblicza operację "większe niż", gdy prawa strona jest typem dopuszczanym wartość null. |
>=? |
Operatory dopuszczające wartość null | Oblicza operację "większe niż lub równe", gdy prawa strona jest typem dopuszczanym wartość null. |
?>= , ?> , ?<= , ?< , ?= , ?<> , ?+ , ?- , ?* , ?/ |
Operatory dopuszczające wartość null | Odpowiednik odpowiednich operatorów bez operatora ? prefix, gdzie typ dopuszczacy wartość null znajduje się po lewej stronie. |
>=? , >? , <=? , <? , =? , <>? , +? , -? , *? , /? |
Operatory dopuszczające wartość null | Odpowiednik odpowiednich operatorów bez operatora ? sufiks , gdzie typ dopuszczacy wartość null znajduje się po prawej stronie. |
?>=? , ?>? , ?<=? , ?<? , ?=? , ?<>? , ?+? , ?-? , ?*? , ?/? |
Operatory dopuszczające wartość null | Odpowiada odpowiednim operatorom bez otaczających znaków zapytania, gdzie obie strony są typami dopuszczaymi wartość null. |
Odwołania do operatorów komórek (przestarzałe)
W poniższej tabeli opisano symbole związane z komórkami odwołania. Użycie tych operatorów generuje komunikaty porad od języka F# 6. Aby uzyskać więcej informacji, zobacz Komunikaty porad dotyczących operacji komórki referencyjnej.
Symbol lub operator | Linki | Opis |
---|---|---|
! |
Komórki odwołań | Wyłuwnia komórkę odwołania. |
:= |
Komórki odwołań | Przypisuje wartość do komórki odwołania. |
Pierwszeństwo operatorów
W poniższej tabeli przedstawiono kolejność pierwszeństwa operatorów i innych słów kluczowych wyrażeń w języku F# w kolejności od najniższego pierwszeństwa do najwyższego. Na liście znajduje się również skojarzenie, jeśli ma to zastosowanie.
Operator | Łączność |
---|---|
as |
Prawe |
when |
Prawe |
| (potok) |
Lewe |
; |
Prawe |
let |
Nieskojarne |
function , fun , match , try |
Nieskojarne |
if |
Nieskojarne |
not |
Prawe |
-> |
Prawe |
:= |
Prawe |
, |
Nieskojarne |
or , || |
Lewe |
& , && |
Lewe |
:> , :?> |
Prawe |
< < , > > , = , | = , & | , & , $ (w tym <<< , >>> , ||| , &&& ) |
Lewe |
^ ^ (w tym ^^^ ) |
Prawe |
:: |
Prawe |
:? |
Niesocjacyjne |
- - , + + |
Dotyczy zastosowania przyrostka tych symboli |
* * , / / , % % |
Lewe |
** ** |
Prawe |
f x (aplikacja funkcji)(w tym lazy x , assert x ) |
Lewe |
| (dopasowanie wzorca) |
Prawe |
operatory prefiksów (+ + , - - , % , , %% & , && , ! % , ~ %% ) |
Lewe |
. |
Lewe |
f(x) |
Lewe |
f< f< > |
Lewe |
F# obsługuje przeciążanie operatorów niestandardowych. Oznacza to, że można zdefiniować własne operatory. W poprzedniej tabeli op może być dowolną prawidłową (potencjalnie pustą) sekwencją znaków operatora — wbudowaną lub zdefiniowaną przez użytkownika. W związku z tym można użyć tej tabeli, aby określić, jakiej sekwencji znaków użyć dla operatora niestandardowego w celu osiągnięcia żądanego poziomu pierwszeństwa. Znaki .
wiodące są ignorowane, gdy kompilator określa pierwszeństwo.