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 |