Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł zawiera tabele opisujące symbole i operatory, które są używane w języku F# i zawierają krótki opis każdego z nich. Niektóre symbole i operatory mają co najmniej dwa wpisy używane w wielu rolach.
Symbole komentarza, dyrektywy kompilatora i atrybutu
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 jednowierszowego. | |
/// |
Dokumentacja XML | Wskazuje komentarz XML. |
# |
Dyrektywy kompilatora | Prefiksy preprocesora lub dyrektywy kompilatora. |
[<...>] |
atrybutów | Rozdziela atrybut. |
Symbole ciągów i identyfikatorów
W poniższej tabeli opisano symbole powiązane z ciągami.
| Symbol lub operator | Linki | Opis |
|---|---|---|
" |
Łańcuchy | Rozdziela ciąg tekstowy. |
@" |
Łańcuchy | Uruchamia dosłowny ciąg tekstowy, który może zawierać ukośniki odwrotne i inne znaki. |
""" |
Łańcuchy | Rozdziela trzykrotnie cytowany ciąg tekstowy, który może zawierać ukośniki odwrotne, podwójne cudzysłów i inne znaki. |
$" |
Ciągi interpolowane | Uruchamia ciąg interpolowany. |
' |
literały | Rozdziela literał jednoznaczny. |
``...`` |
Rozdziela identyfikator, który w przeciwnym razie nie byłby identyfikatorem prawnym, takim jak słowo kluczowe języka. | |
\ |
Łańcuchy | Uniknie 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ę wykładniczą (x ** y oznacza x moc ).y |
Operatory porównania
W poniższej tabeli opisano operatory porównania.
| Symbol lub operator | Linki | Opis |
|---|---|---|
< |
Operatory arytmetyczne | Oblicza mniej niż operację. |
<> |
Operatory arytmetyczne | Zwraca wartość true , 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 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ż po prawej stronie; w przeciwnym razie zwraca wartość false. |
>= |
Operatory arytmetyczne | Zwraca true wartość , jeśli lewa strona jest większa lub równa prawej stronie; w przeciwnym razie zwraca wartość false. |
Operatory boolowskie
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 Bitowe | Oblicza bitową operację AND. |
<<< |
Operatory Bitowe | Przesuwa bity w ilości po lewej stronie do lewej o liczbę bitów określonych po prawej stronie. |
>>> |
Operatory Bitowe | Przesuwa bity w ilości po lewej stronie po prawej stronie o liczbę miejsc określonych po prawej stronie. |
^^^ |
Operatory Bitowe | Oblicza bitową operację wyłączną OR. |
||| |
Operatory Bitowe | Oblicza bitową operację OR. |
~~~ |
Operatory Bitowe | 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 oddziela wzorzec wejściowy od wyrażenia wyjściowego. |
|> |
Funkcje | Przekazuje wynik lewej strony do funkcji po prawej stronie (operator potoku do przodu). |
||> |
( ||> )<'T1,'T2,'U> , funkcja | Przekazuje krotkę dwóch argumentów po lewej stronie do funkcji po prawej stronie. |
|||> |
( |||> )<'T1,'T2,'T3,'U> , funkcja | Przekazuje krotkę trzech argumentów po lewej stronie do funkcji po prawej stronie. |
>> |
Funkcje | Komponuje dwie funkcje (operator składowania do przodu). |
<< |
Funkcje | Komponuje dwie funkcje w odwrotnej kolejności; drugi jest wykonywany jako pierwszy (operator kompozycji wstecznej). |
<| |
Funkcje | Przekazuje wynik wyrażenia po prawej stronie do funkcji po lewej stronie (operator potoku wstecznego). |
<|| |
( <|| )<' T1,'T2,'U> , Funkcja | Przekazuje krotkę dwóch argumentów po prawej stronie do funkcji po lewej stronie. |
<||| |
( <||| )<' T1,'T2,'T3,'U> , funkcja | Przekazuje krotkę trzech argumentów po prawej stronie do funkcji po lewej stronie. |
Symbole i operatory typu
W poniższej tabeli opisano symbole związane z adnotacją typu i testami typów.
| Symbol lub operator | Linki | Opis |
|---|---|---|
-> |
Funkcje | W typach funkcji rozdziela argumenty i wartości zwracane również dają wynik w wyrażeniach sekwencji. |
: |
Funkcje | W adnotacji typu oddziela parametr lub nazwę elementu członkowskiego od jego typu. |
:> |
Rzutowanie i konwersje | Konwertuje typ na typ, który jest wyższy w hierarchii. |
:? |
Wyrażenia dopasowania | Zwraca true wartość, jeśli wartość jest zgodna z określonym typem (w tym jeśli jest to podtyp); w przeciwnym razie zwraca wartość false (operator testu typu). |
:?> |
Rzutowanie i konwersje | Konwertuje typ na typ, który jest niższy w hierarchii. |
# |
Typy elastyczne | W przypadku użycia z typem wskazuje typ elastyczny, który odnosi 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ązane parametry typu Łańcuchy |
|
{} |
Klasa lub rekord | W przypadku użycia ze type słowem kluczowym rozdziela klasę lub rekord. Typ jest klasą, gdy składowe są deklarowane lub class używane jest słowo kluczowe. W przeciwnym razie jest to rekord. |
{||} |
Rekord anonimowy | Oznacza rekord anonimowy |
Symbole używane w wyrażeniach wyszukiwania i fragmentacji składowych
W poniższej tabeli opisano dodatkowe symbole używane w wyrażeniach odnośników składowych i wycinkach.
| Symbol lub operator | Linki | Opis |
|---|---|---|
. |
Członkowie | Uzyskuje dostęp do elementu członkowskiego i oddziela poszczególne nazwy w w pełni kwalifikowanej nazwy. |
[...] lub .[...] |
tablice Właściwości indeksowane Wyrażenia wycinka |
Indeksuje do tablicy, ciągu lub kolekcji albo pobiera fragment kolekcji. |
Symbole używane w krotkach, listach, tablicach, 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. |
; |
Składnia szczegółowa |
Oddziela wyrażenia (używane głównie w składni pełnej). 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 | Zwraca wyrażenie (w wyrażeniach sekwencji); odpowiednik słów do yield kluczowych. |
! |
Wyrażenia obliczeniowe | Po słowie kluczowym wskazuje zmodyfikowaną wersję zachowania słowa kluczowego jako kontrolowane przez wyrażenie obliczeniowe. |
Dodatkowe symbole używane w wzorcach dopasowania
W poniższej tabeli opisano symbole związane z dopasowaniem wzorca.
| Symbol lub operator | Linki | Opis |
|---|---|---|
-> |
Wyrażenia dopasowania | Używane w wyrażeniach dopasowania. |
& |
Dopasowywanie wzorca |
|
_ |
Wyrażenia dopasowania Typy ogólne |
|
| |
Wyrażenia dopasowania | Ogranicz poszczególne przypadki dopasowania, indywidualne przypadki dyskryminacyjne 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 |
|---|---|---|
(|...|) |
aktywne wzorce | Rozdziela aktywną nazwę wzorca. Nazywane również klipami bananowymi. |
? |
Parametry i argumenty | Określa opcjonalny argument. |
~~ |
przeciążenie operatora | Służy do deklarowania przeciążenia operatora negacji jednoargumentowej. |
~- |
przeciążenie operatora | Służy do deklarowania przeciążenia jednoargumentowego operatora minus. |
~+ |
przeciążenie operatora | Służy do deklarowania przeciążenia dla jednoargumentowego operatora 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 nietypowy cudzysłów kodu. |
% |
Cytaty kodu | Służy do łączenia wyrażeń w typowych cudzysłowach kodu. |
%% |
Cytaty kodu | Służy do łączenia wyrażeń w nietypowych cudzysłowach kodu. |
Dynamiczne operatory odnośników
W poniższej tabeli opisano dodatkowe symbole używane w dynamicznych wyrażeniach odnośników. Nie są one zwykle używane w rutynowym programowaniu języka F#, a w bibliotece podstawowej języka F# nie są udostępniane żadne implementacje tego operatora.
| 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 do wartości null w zapytaniach
Operatory dopuszczane do 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 dopuszczane do wartości null | Oblicza pozostałą liczbę całkowitą, gdy po prawej stronie jest typ dopuszczający wartość null. |
*? |
Operatory dopuszczane do wartości null | Mnoży lewe i prawe boki, gdy prawa strona jest typem dopuszczalnym wartości null. |
+? |
Operatory dopuszczane do wartości null | Dodaje lewe i prawe boki, gdy prawa strona jest typem dopuszczalnym wartości null. |
-? |
Operatory dopuszczane do wartości null | Odejmuje prawą stronę z lewej strony, gdy prawa strona jest typem dopuszczającym wartość null. |
/? |
Operatory dopuszczane do wartości null | Dzieli lewą stronę po prawej stronie, gdy prawa strona jest typem dopuszczalnym wartości null. |
<? |
Operatory dopuszczane do wartości null | Oblicza wartość mniejszą niż operacja, gdy prawa strona jest typem dopuszczalnym wartości null. |
<>? |
Operatory dopuszczane do wartości null | Oblicza operację "nie równa się", gdy prawa strona jest typem dopuszczalnym wartości null. |
<=? |
Operatory dopuszczane do wartości null | Oblicza operację "mniejsze niż lub równe", gdy prawa strona jest typem dopuszczalnym wartości null. |
=? |
Operatory dopuszczane do wartości null | Oblicza operację "równa się", gdy prawa strona jest typem dopuszczalnym wartości null. |
>? |
Operatory dopuszczane do wartości null | Oblicza operację "większą niż", gdy prawa strona jest typem dopuszczalnym wartości null. |
>=? |
Operatory dopuszczane do wartości null | Oblicza operację "większą lub równą", gdy prawa strona jest typem dopuszczalnym wartości null. |
?>=, ?>, , , ?=?*?<?<>?+?-?<=?/ |
Operatory dopuszczane do wartości null | Odpowiednik odpowiednich operatorów bez operatora ? prefiks, gdzie typ dopuszczalny wartości null znajduje się po lewej stronie. |
>=?, >?, , , =?*?<?<>?+?-?<=?/? |
Operatory dopuszczane do wartości null | Odpowiednik odpowiednich operatorów bez operatora ? sufiks, gdzie typ dopuszczalny wartości null znajduje się po prawej stronie. |
?>=?, ?>?, , , ?=??*??<??<>??+??-??<=??/? |
Operatory dopuszczane do wartości null | Odpowiednik odpowiednich operatorów bez otaczających znaków zapytania, gdzie obie strony są typami dopuszczającymi wartość null. |
Operatory komórek odwołania (przestarzałe)
W poniższej tabeli opisano symbole powiązane z komórkami odwołania. Użycie tych operatorów generuje komunikaty doradcze w języku F# 6. Aby uzyskać więcej informacji, zobacz Odwołania do komunikatów doradczych dotyczących operacji komórek.
| Symbol lub operator | Linki | Opis |
|---|---|---|
! |
Komórki odwołania | Wyłusza komórkę odwołania. |
:= |
Komórki odwołania | Przypisuje wartość do komórki odwołania. |
Priorytet 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 pierwszeństwa. Na liście znajduje się również skojarzenie, jeśli ma to zastosowanie.
| Obsługujący | Zespolenie |
|---|---|
as |
Prawo |
when |
Prawo |
| (rura) |
Lewo |
; |
Prawo |
let |
Brak skojarzenia |
function, , fun, , matchtry |
Brak skojarzenia |
if |
Brak skojarzenia |
not |
Prawo |
-> |
Prawo |
:= |
Prawo |
, |
Brak skojarzenia |
or, || |
Lewo |
&, && |
Lewo |
:>, :?> |
Prawo |
<
op, >op, =|op, &op, &, ,$(w tym <<<, >>>, |||, ) &&& |
Lewo |
^
Op(w tym ^^^) |
Prawo |
:: |
Prawo |
:? |
Brak skojarzenia |
-
op, +op |
Dotyczy użycia tych symboli w prefiksie |
*
op, /op, %op |
Lewo |
**
Op |
Prawo |
f x (aplikacja funkcji)(w tym lazy x, assert x) |
Lewo |
| (dopasowanie wzorca) |
Prawo |
operatory prefiksów (+op, -op, %, %%&, &&, !op, op) ~ |
Lewo |
. |
Lewo |
f(x) |
Lewo |
f<
Typy> |
Lewo |
Język F# obsługuje przeciążenie operatora niestandardowego. Oznacza to, że można zdefiniować własne operatory. W poprzedniej tabeli operacja może być dowolną prawidłową (prawdopodobnie 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ć, która sekwencja znaków ma być używana dla operatora niestandardowego w celu osiągnięcia żądanego poziomu pierwszeństwa. Znaki wiodące . są ignorowane, gdy kompilator określa pierwszeństwo.
Zobacz także
- Przewodnik po języku F#
- przeciążenie operatora