F # - operatory

Operator to symbol, który mówi kompilatorowi, aby wykonał określone operacje matematyczne lub logiczne. F # jest bogaty we wbudowane operatory i udostępnia następujące typy operatorów -

  • Operatory arytmetyczne
  • Operatory porównania
  • Operatory boolowskie
  • Operatory bitowe

Operatory arytmetyczne

W poniższej tabeli przedstawiono wszystkie operatory arytmetyczne obsługiwane przez język F #. Załóżmy, że zmienna A zawiera 10, a zmienna B 20, a następnie -

Pokaż przykład

Operator Opis Przykład
+ Dodaje dwa operandy A + B da 30
- Odejmuje drugi operand od pierwszego A - B da -10
* Mnoży oba operandy A * B da 200
/ Dzieli licznik przez de-licznik B / A da 2
% Operator modułu i reszta po dzieleniu całkowitoliczbowym B% A da 0
** Operator potęgowania podnosi operand do potęgi innego B ** A da 20 10

Operatory porównania

W poniższej tabeli przedstawiono wszystkie operatory porównania obsługiwane przez język F #. Te binarne operatory porównania są dostępne dla typów całkowitych i zmiennoprzecinkowych. Te operatory zwracają wartości typu bool.

Załóżmy, że zmienna A zawiera 10, a zmienna B 20, a następnie -

Pokaż przykład

Operator Opis Przykład
= Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli tak, warunek staje się prawdziwy. (A == B) nie jest prawdą.
<> Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli wartości nie są równe, warunek staje się prawdziwy. (A <> B) jest prawdą.
> Sprawdza, czy wartość lewego operandu jest większa niż wartość prawego operandu. Jeśli tak, warunek staje się prawdziwy. (A> B) nie jest prawdą.
< Sprawdza, czy wartość lewego operandu jest mniejsza niż wartość prawego operandu, jeśli tak, warunek staje się prawdziwy. (A <B) jest prawdą.
> = Sprawdza, czy wartość lewego operandu jest większa lub równa wartości prawego operandu, jeśli tak, warunek staje się prawdziwy. (A> = B) nie jest prawdą.
<= Sprawdza, czy wartość lewego operandu jest mniejsza lub równa wartości prawego operandu, jeśli tak, warunek staje się prawdziwy. (A <= B) jest prawdą.

Operatory boolowskie

W poniższej tabeli przedstawiono wszystkie operatory logiczne obsługiwane przez język F #. Załóżmy, że zmienna A się utrzymujetrue i zmienna B. false, wtedy -

Pokaż przykład

Operator Opis Przykład
&& Nazywany operatorem logicznym AND. Jeśli oba operandy są niezerowe, warunek staje się prawdziwy. (A && B) jest fałszem.
|| Nazywany operatorem logicznym OR. Jeśli którykolwiek z dwóch operandów jest niezerowy, warunek staje się prawdziwy. (A || B) jest prawdą.
nie Nazywany operatorem Boolean NOT. Służy do odwracania stanu logicznego operandu. Jeśli warunek jest spełniony, operator logiczny NOT spowoduje fałsz. nie (A && B) jest prawdą.

Operatory bitowe

Operatory bitowe pracują na bitach i wykonują operacje bit po bicie. Tabele prawdy dla &&& (bitowe AND), ||| (bitowe OR) i ^^^ (bitowe OR) są następujące -

Pokaż przykład

p q p &&& q p ||| q p ^^^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

Załóżmy, że A = 60; i B = 13; teraz w formacie binarnym będą wyglądać następująco -

A = 0011 1100

B = 0000 1101

-----------------

A &&& B = 0000 1100

A ||| B = 0011 1101

A ^^^ B = 0011 0001

~~~ A = 1100 0011

W poniższej tabeli wymieniono operatory bitowe obsługiwane przez język F #. Załóżmy, że zmienna A zawiera 60, a zmienna B 13, a następnie -

Operator Opis Przykład
&&& Operator binarny AND kopiuje trochę do wyniku, jeśli istnieje w obu operandach. (A &&& B) da 12, czyli 0000 1100
||| Operator binarny OR kopiuje bit, jeśli istnieje w którymkolwiek z operandów. (A ||| B) da 61, czyli 0011 1101
^^^ Binarny operator XOR kopiuje bit, jeśli jest ustawiony w jednym operandzie, ale nie w obu. (A ^^^ B) daje 49, czyli 0011 0001
~~~ Operator dopełniacza binarnego jest jednoargumentowy i powoduje „odwracanie” bitów. (~~~ A) da -61, czyli 1100 0011 w postaci dopełnienia do 2.
<<< Binarny operator przesunięcia w lewo. Wartość lewego operandu jest przesuwana w lewo o liczbę bitów określoną przez prawy operand. <<< 2 da 240, czyli 1111 0000
>>> Binarny operator przesunięcia w prawo. Wartość lewego operandu jest przesuwana w prawo o liczbę bitów określoną przez prawy operand. >>> 2 da 15, czyli 0000 1111

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 #, od najniższego do najwyższego priorytetu.

Pokaż przykład

Operator Łączność
tak jak Dobrze
gdy Dobrze
| (rura) Lewo
; Dobrze
pozwolić Niezespolone
funkcja, zabawa, dopasowanie, próba Niezespolone
gdyby Niezespolone
Dobrze
: = Dobrze
, Niezespolone
lub || Lewo
&, && Lewo
<op,> op, =, | op i op Lewo
&&&, |||, ^^^, ~~~, <<<, >>> Lewo
^ op Dobrze
:: Dobrze
:?>,:? Niezespolone
- op, + op, (binarne) Lewo
* op, / op,% op Lewo
** op Dobrze
fx (aplikacja funkcji) Lewo
| (dopasowanie do wzorca) Dobrze
operatory prefiksów (+ op, -op,%, %%, &, &&,! op, ~ op) Lewo
. Lewo
f (x) Lewo
f <types> Lewo