Operatory są funkcjami specjalnymi zdefiniowanymi w języku programowania Verse, które służą do wykonywania akcji, takich jak operacje matematyczne i ich operandy. Na przykład w wyrażeniu 1 + 2 znak + jest operatorem, a 1 i 2 są operandami.
W Verse dostępne są trzy formaty operatorów:
Przedrostek: Występuje tylko jeden operand, a operator znajduje się przed tym operandem.
Śródrostek: Występują dwa operandy, a operator znajduje się między operandami.
Przyrostek: Występuje tylko jeden operand, a operator znajduje się po tym operandzie.
Na tej stronie opisano wszystkie operatory, których można używać w Verse, sposób ich działania oraz kolejność oceny w połączeniu z innymi operatorami.
Lista wszystkich operatorów i nadrzędność operatorów
Jeśli jedno wyrażenie zawiera wiele operatorów, ich ocena przebiega w kolejności nadrzędności, od najwyższego do najniższego poziomu. W poniższej tabeli zamieszczono wszystkie operatory wbudowane w Verse oraz ich nadrzędność.
| Nazwa | Operator | Opis | Format operatorów | nadrzędność operatorów | Przykład |
|---|---|---|---|---|---|
Zapytanie |
| Operator | przyrostek | 11 |
|
Nie |
| Operator | Przedrostek | 8. |
|
Pozytywny |
| Wstawianie operatora | Przedrostek | 8. |
|
Nie podoba mi się |
| Wstawienie operatora | Przedrostek | 8. |
|
Mnożenie |
| Operator | śródrostek | 7. |
|
Dzielenie |
| Operator | śródrostek | 7. |
|
Dodawanie |
| Operator | śródrostek | 21 |
|
Odejmowanie |
| Operator | śródrostek | 21 |
|
Dodawanie z przypisaniem |
| Ten operator pozwala połączyć dodawanie oraz przypisywanie w jednej operacji w celu zaktualizowania wartości zmiennej. Aby dowiedzieć się więcej, patrz Matematyka. | śródrostek | 5 pkt. |
|
Odejmowanie z przypisaniem |
| Ten operator pozwala połączyć odejmowanie oraz przypisywanie w jednej operacji w celu zaktualizowania wartości zmiennej. Aby dowiedzieć się więcej, patrz Matematyka. | śródrostek | 5 pkt. |
|
Mnożenie z przypisaniem |
| Ten operator pozwala połączyć mnożenie oraz przypisywanie w jednej operacji w celu zaktualizowania wartości zmiennej. Aby dowiedzieć się więcej, patrz Matematyka. | śródrostek | 5 pkt. |
|
Dzielenie z przypisaniem |
| Ten operator pozwala połączyć dzielenie oraz przypisywanie w jednej operacji w celu zaktualizowania wartości zmiennej, chyba że zmienna jest liczbą całkowitą. Aby dowiedzieć się więcej, patrz Matematyka. | śródrostek | 5 pkt. |
|
Równość |
| Operator | śródrostek | 08 |
|
Nierówność |
| Operator | śródrostek | 08 |
|
Mniejszość |
| Operator | śródrostek | 08 |
|
Mniejszość lub równość |
| Operator | śródrostek | 08 |
|
Większość |
| Operator | śródrostek | 08 |
|
Większość lub równość |
| Operator | śródrostek | 08 |
|
I |
| Operator | śródrostek | 3 pkt. |
|
Lub |
| Operator | śródrostek | 2. |
|
Inicjacja zmiennych i stałych |
| Za pomocą tego operatora można zapisać wartości w stałej lub zmiennej. Aby dowiedzieć się więcej, patrz Stałe i zmienne. | śródrostek | ZA |
|
Przypisanie zmiennej |
| Za pomocą tego operatora można zaktualizować wartości zapisane w zmiennej. Aby dowiedzieć się więcej, patrz Stałe i zmienne. | śródrostek | ZA |
|
Jeśli jedno wyrażenie zawiera wiele operatorów o takim samym poziomie nadrzędności, wówczas ich ocena przebiega od lewej do prawej. Na przykład w wyrażeniu 3*2/4 zarówno operator *, jak i operator / mają taką samą nadrzędność, więc 3*2 jest oceniane jako pierwsze, a jego wynik jest lewym operandem dla operatora /.
Kolejność oceny operatorów można zmienić, grupując wyrażenia za pomocą nawiasu (). Na przykład ocena wyrażeń (1+2)*3 i 1+(2*3) nie zwróci jednakowej wartości. Aby dowiedzieć się więcej, patrz Grupowanie.
Porównanie
Możesz kontrolować przepływ powodzenia i niepowodzenia za pomocą wyrażeń porównawczych, które używają operatorów nierówności i równości. Wyrażenia porównawcze są zawodne, więc można używać operatorów porównawczych tylko w kontekstach niepowodzenia, takich jak w wyrażeniach if.
Poniższa tabela opisuje każdy operator oraz typy, które obsługuje. Wszystkie operatory porównawcze używają formatu śródrostka.
| Operator | Obsługiwane wbudowane typy | Opis |
|---|---|---|
|
| Operator |
|
| Operator |
|
| Operator |
|
| Operator |
|
| Operator |
|
| Operator |
Zarówno <>, jak i = są również obsługiwane dla instancji array, map, tuple i class, ale z ograniczeniami. Instancje array, map i tuple mogą zawierać tylko obsługiwane typy, a instancje class są obsługiwane tylko jeśli zawierają przynajmniej jedną składową var.
Decyzja
Możesz kontrolować przepływ powodzenia i niepowodzenia za pomocą wyrażeń decyzyjnych, które używają operatorów not, and oraz or. Wyrażenia decyzyjne są zawodne, więc można używać operatorów porównawczych tylko w kontekstach niepowodzenia, takich jak w wyrażeniach if. Z operatorami decyzyjnymi można używać dowolnych wyrażeń, które kończą się powodzeniem lub niepowodzeniem.
Operator not
Operator decyzyjny not neguje powodzenie lub niepowodzenie wyrażenia. Operator not używa formatu przedrostka.
Na przykład, gdy wyrażenie zawodzi, wyrażenie not zakończy się powodzeniem. Gdy wyrażenie kończy się powodzeniem, wyrażenie not zakończy się niepowodzeniem, a efekty wyrażenia nigdy nie zostaną zatwierdzone (tak jakby wyrażenie nigdy nie miało miejsca).
Na przykład, po wykonaniu poniższego kodu, Example nadal będzie miało wartość początkową 0:
var Example : int = 0
if (not (set Example = ExampleArray[0])) { … }Możesz użyć wyrażenia not not jako sposobu na sprawdzenie, czy wyrażenie się powiedzie, ale tak, aby wyrażenie nigdy się nie wydarzyło.
| Wynik wyrażenia p | Wynik wyrażenia not p | Wynik wyrażenia not not p |
|---|---|---|
Kończy się powodzeniem, a wynik to | Wyrażenie kończy się niepowodzeniem, a efekty | Wyrażenie kończy się powodzeniem, ale efekty |
Kończy się niepowodzeniem, a wynik to brak wartości | Wyrażenie kończy się powodzeniem. Wynikiem wyrażenia jest | Wyrażenie kończy się niepowodzeniem. Wynikiem wyrażenia jest brak wartości. |
Odwołanie do operatora not oceniającego wyrażenie, reprezentowanego przez p.
Operatory and / or
Operator decyzyjny and używa formatu śródrostka i jest wyrażeniem zawodnym, które kończy się powodzeniem, jeśli oba operandy zakończą się powodzeniem, lub kończy się niepowodzeniem, jeśli co najmniej jeden operand zakończy się niepowodzeniem.
Operator decyzyjny or używa formatu śródrostka i jest:
Kontekstem niepowodzenia dla pierwszego operandu.
Wyrażeniem zawodnym tylko wtedy, gdy drugi operand jest zawodny.
Operator or pomija ocenę drugiego operandu, jeśli pierwszy operand zakończy się powodzeniem.
Poniższa tabela opisuje wyniki wszystkich kombinacji operandów powodzenia i niepowodzenia dla wyrażeń decyzyjnych używających operatorów and oraz or.
| Wynik wyrażenia p | Wynik wyrażenia q | Wynik wyrażenia p and q | Wynik wyrażenia p or q |
|---|---|---|---|
Kończy się powodzeniem, a wynik to | Kończy się powodzeniem, a wynik to | Wyrażenie kończy się powodzeniem, więc efekty zarówno | Wyrażenie kończy się powodzeniem, ale tylko efekty |
Kończy się powodzeniem, a wynik to | Kończy się niepowodzeniem, a wynik to brak wartości | Wyrażenie kończy się niepowodzeniem, a efekty zarówno | Wyrażenie kończy się powodzeniem, ale tylko efekty |
Kończy się niepowodzeniem, a wynik to brak wartości | Kończy się powodzeniem, a wynik to | Wyrażenie kończy się niepowodzeniem, a efekty zarówno | Wyrażenie kończy się powodzeniem, ale tylko efekty |
Kończy się niepowodzeniem, a wynik to brak wartości | Kończy się niepowodzeniem, a wynik to brak wartości | Wyrażenie kończy się niepowodzeniem, a efekty zarówno | Wyrażenie kończy się niepowodzeniem, a efekty zarówno |
Odwołanie do operatorów and oraz or oceniających wyrażenia, reprezentowanych przez p i q.
Matematyka
Za pomocą wyrażeń matematycznych można wykonywać cztery podstawowe operacje matematyczne (dodawanie, odejmowanie, mnożenie i dzielenie) z wartościami liczbowymi i dodawać do siebie ciągi znaków. Wszystkie operatory używają formatu śródrostka, z wyjątkiem + i -, które mogą być również przedrostkiem dla wartości liczbowych.
Istnieją również operatory przypisania, np. set X += 10. Są one prawie takie same jak wykonanie operacji, a następnie przypisanie wyniku, set X = X + 10, różnica polega na tym, że X w tym przypadku jest obliczane tylko raz. Wynikiem działania operatora przypisania jest wartość użyta do aktualizacji zmiennej.
Poniższa tabela opisuje każdy operator oraz typy, które obsługuje.
| Operator | Obsługiwane wbudowane typy | Opis |
|---|---|---|
|
| Operator |
|
| Operator |
|
| Operator |
|
| Operator |
|
| Ten operator pozwala połączyć dodawanie oraz przypisywanie w jednej operacji w celu zaktualizowania wartości zmiennej. |
|
| Ten operator pozwala połączyć odejmowanie oraz przypisywanie w jednej operacji w celu zaktualizowania wartości zmiennej. |
|
| Ten operator pozwala połączyć mnożenie oraz przypisywanie w jednej operacji w celu zaktualizowania wartości zmiennej. |
|
| Ten operator pozwala połączyć dzielenie oraz przypisywanie w jednej operacji w celu zaktualizowania wartości zmiennej, chyba że zmienna jest liczbą całkowitą. Aby uzyskać więcej informacji na temat dzielenia liczb całkowitych, patrz: int. |
Zapytanie
Wyrażenia zapytania wykorzystują operator ? (zapytanie) i sprawdzają, czy wartość logic to true. Jeśli nie, wyrażenie kończy się niepowodzeniem. Operator ? (zapytanie) używa formatu śródrostka.
| Wynik wyrażenia p | Wynik wyrażenia p? |
|---|---|
| Kończy się powodzeniem, a wynik to |
| Kończy się niepowodzeniem, a wynik to brak wartości. |
Odwołanie do operatora ? (zapytanie) oceniającego wyrażenia, reprezentowane przez p.
Na przykład:
if (IsMorning?):
Say("Good Morning!")