Wyrażenie jest najmniejszą jednostką kodu, która po obliczeniu zwraca wynik. W Verse wszystko jest wyrażeniem, co oznacza, że wszystko jest oceniane jako wartość.
Przykładem jest wyrażenie if ... else
, które w języku Verse zwraca wartość zależną od zawartości
bloków wyrażenia. Poniższy kod zwraca wartość typu string, która zawiera informację "Więcej!" lub "Mniej!", w zależności od tego, czy wartość MyNumber
była większa od 5:
if (MyNumber > 5):
“Big!”
else
“Small!”
To oznacza, że można użyć if ... else
bezpośrednio jako danych wejściowych funkcji zamiast zapisywać wynik i używać go jako danych wejściowych.
Choć ten przykład jest prosty, istnieją konteksty, w których takie rozwiązanie staje się potężniejsze. Na przykład pętle są oceniane jako tablice wartości, dzięki czemu można szybko tworzyć nowe tablice na podstawie istniejących.
W poniższym kodzie tablica MyArray
będzie zawierać wszystkie wartości z tablicy NumberArray
, które są mniejsze niż 5.
MyArray : []int = for(Number := NumberArray, Number < 5):
Liczba
Wyrażenia zawodne
Wyrażenie zawodne to wyrażenie, które może zakończyć się powodzeniem i wygenerować wartość lub może zakończyć się niepowodzeniem i nie zwrócić żadnej wartości. Wyrażenia zawodne można wykonywać tylko w kontekście niepowodzenia, ponieważ ten kontekst określi, co się stanie w przypadku niepowodzenia wyrażenia.
Przykłady wyrażeń zawodnych obejmują indeksowanie do tablicy, ponieważ nieprawidłowy indeks zakończy się niepowodzeniem, oraz używanie operatorów, takich jak porównywanie dwóch wartości. Aby dowiedzieć się więcej na temat wyrażeń zawodnych w Verse, patrz Niepowodzenie.
Lista wyrażeń w Verse
W poniższej tabeli opisano różne rodzaje wyrażeń w Verse. W zawartych w niej odnośnikach można znaleźć więcej informacji na temat poszczególnych wyrażeń.
Wyrażenie | Opis | Czy wyrażenie jest zawodne? |
---|---|---|
Literały | ||
Wywołania funkcji | Wywołanie funkcji jest wyrażeniem i może mieć dwie formy: FunctionName() oraz FunctionName[] . Typ wyniku wyrażenia wywołania funkcji jest zdefiniowany w sygnaturze funkcji. Aby dowiedzieć się więcej, patrz Funkcja. |
Tylko gdy wywołanie funkcji ma postać FunctionName[] , a definicja funkcji zawiera specyfikator <decides> . |
Porównanie | Wyrażenie porównawcze porównuje dwie rzeczy za pomocą jednego z operatorów porównawczych:
Aby dowiedzieć się więcej, patrz Operatory. |
Tak |
Przypisanie | Wyrażenie przypisania przechowuje wartość w modyfikowalnej lokalizacji, na przykład podczas inicjowania stałej lub zmiany wartości zmiennej. Aby dowiedzieć się więcej, patrz Stałe i zmienne. | |
Matematyka | Wyrażenie matematyczne wykonuje obliczenia przy użyciu następujących operatorów:
Wszystkie te operatory mają również warianty przypisania, które mogą być używane ze wskaźnikami. Aby dowiedzieć się więcej, patrz Operatory. |
Tylko dla dzielenia liczb całkowitych. |
Decyzja | Wyrażenie decyzji wykorzystuje operatory not , and oraz or , aby umożliwić sterowanie przepływem decyzji o powodzeniu i niepowodzeniu. Aby dowiedzieć się więcej, patrz Operatory. |
Tak |
Zapytanie | Wyrażenie zapytania wykorzystuje operator ? i sprawdza, czy wartość logiczna lub opcja ma wartość true . Jeśli nie, wyrażenie kończy się niepowodzeniem. Aby dowiedzieć się więcej, patrz Operatory. |
Tak |
Instancja klasy i struktury | Tworzenie instancji class lub struct jest wyrażeniem. Patrz klasa i struktura. |
|
Sterowanie przepływem | Sterowanie przepływem oznacza ustalanie kolejności, w jakiej komputer wykonuje instrukcje. Do zmiany tego przepływu można użyć wyrażeń takich jak
Aby dowiedzieć się więcej, patrz Sterowanie przepływem. |
|
Tablica | Tablica to kontener, w którym można przechowywać elementy tego samego typu. Elementy tablicy są uporządkowane w kolejności, w jakiej zostały w niej umieszczone, a dostęp do nich można uzyskać poprzez ich pozycję w tablicy, zwaną ich indeksem. Aby dowiedzieć się więcej, patrz Tablica. | Tylko podczas indeksowania w tablicy. |
Krotka | Krotka to kontener, w którym można przechowywać elementy jednego lub większej liczby typów. Elementy krotki są w kolejności, w jakiej zostały w niej umieszczone, a dostęp do nich można uzyskać poprzez ich pozycję w krotce, zwaną ich indeksem. Aby dowiedzieć się więcej, patrz Krotka . | |
Mapa | Mapa jest kontenerem, w którym można przechowywać wartości powiązane z inną wartością, nazywane parami klucz-wartość. Pary klucz-wartość mogą być dowolną kombinacją typów, o ile typ klucza jest porównywalny. Elementy mapy są w kolejności, w jakiej pary klucz-wartość zostały w niej umieszczone, a dostęp do nich można uzyskać za pomocą ich unikatowych kluczy. Aby dowiedzieć się więcej, patrz Mapa | |
Opcja | Opcja jest kontenerem, który może zawierać jedną wartość lub nie zawierać żadnej wartości typu. Aby dowiedzieć się więcej, patrz Opcja. | |
Zakres | Wyrażenia zakresu zawierają wszystkie liczby pomiędzy dwiema wartościami, łącznie z tymi określonymi wartościami, z dwiema kropkami .. pomiędzy wartościami; na przykład, 1..5 . Wyrażenia zakresu mogą być używane tylko w niektórych miejscach, takich jak wyrażenia for . Aby dowiedzieć się więcej, patrz Zakres. |