Udostępnij za pomocą


Odwołanie do symboli i operatorów

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
  • Jeśli jest używany jako operator binarny, dodaje lewe i prawe strony.
  • Jeśli jest używany jako operator jednoargumentowy, wskazuje dodatnią ilość. (Formalnie generuje tę samą wartość z znakiem bez zmian).
- Operatory arytmetyczne
  • Jeśli jest używany jako operator binarny, odejmuje prawą stronę z lewej strony.
  • Gdy jest używany jako operator jednoargumentowy, 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 krotki.
  • Używane w jednostkach typów miar.
/ Operatory arytmetyczne

Jednostki miary
  • Dzieli lewą stronę (licznik) po prawej stronie (mianownik).
  • Używane w jednostkach typów miar.
% 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
  • Określa parametry typu, które muszą być rozpoznawane w czasie kompilacji, a nie w czasie wykonywania.
  • Łączy ciągi.
{} 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
  • Tworzy listę. Element po lewej stronie jest poprzedzany listą po prawej stronie.
  • Używany w dopasowywaniu do wzorca, aby oddzielić 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.
; 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
  • Oblicza adres wartości modyfikowalnej do użycia podczas współdziałania z innymi językami.
  • Używane w wzorcach AND.
_ Wyrażenia dopasowania

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