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
  • Gdy jest używany jako operator binarny, dodaje lewą i prawą stronę.
  • Gdy jest używany jako operator unarchitarny, oznacza liczbę dodatnią. (Formalnie generuje tę samą wartość ze znakiem bez zmian).
- Operatory arytmetyczne
  • Gdy jest używany jako operator binarny, odejmuje prawą stronę od lewej strony.
  • Gdy jest używany jako operator unary, wykonuje operację negacji.
* Operatory arytmetyczne

Krotki

Jednostki miary
  • Gdy jest używany jako operator binarny, mnoży lewą i prawą stronę.
  • W typach wskazuje parowanie w krotce.
  • Używane w jednostkach typów miar.
/ Operatory arytmetyczne

Jednostki miary
  • Dzieli lewą stronę (licznik) przez prawą stronę (mianownik).
  • Używane w jednostkach typów miar.
% 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
  • Określa parametry typu, które muszą być rozpoznawane w czasie kompilacji, a nie w czasie uruchamiania.
  • Łączy 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
  • Tworzy listę. Element po lewej stronie jest dołączany do listy po prawej stronie.
  • Używany w dopasowywaniu do wzorca w celu oddzielenia części listy.
@ 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
  • Oblicza adres modyfikowalnej wartości do użycia podczas współpracy z innymi językami.
  • Używane we wzorcach AND.
_ Wyrażenia dopasowania

Typy ogólne
  • Wskazuje wzorzec z symbolami wieloznacznymi.
  • Określa anonimowy parametr ogólny.
| 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.

Zobacz też