W trakcie lekcji 2 przedstawiliśmy kilka częściej spotykanych typów oraz operacji i wartości z nimi powiązanych. Pora dowiedzieć się, jak używać tych typów i wartości w kodzie.
Wartości używane przez wyrażenia są czasami określane jako informacje lub dane. Programy potrzebują informacji, aby wiedzieć, co mają robić. Istnieją różne sposoby przechowywania tych danych lub wartości.
Istnieją także różne rodzaje danych.
Dane modyfikowalne i niemodyfikowalne
Modyfikowalne, czyli takie, które można zmieniać, to po angielsku mutable. Zauważ podobieństwo tego słowa do mutanta, czyli kogoś, czyje DNA zostało zmienione lub zmutowane.
Morskie fale są zmienne – ciągle się zmieniają.
Gdy coś jest niemodyfikowalne (ang. immutable), nie można tego zmieniać. Jeśli zapomnisz o trzęsieniach ziemi, falach pływowych, eksplozjach czy erozji, klif na skraju plaży jest niezmienny.
Ale co to ma wspólnego z kodem?
Gdy wartości nie można zmienić podczas działania programu, jest ona niemodyfikowalna. Jeśli wartość zmienia się podczas działania programu na podstawie danych wejściowych z innego miejsca, wartość jest modyfikowalna.
W Verse dostępne są wbudowane typy obsługujące podstawowe operacje, których większość programów potrzebuje do działania. Te wbudowane typy są podstawą do używania zmiennych i stałych w Verse.
Zmienne i stałe
W programowaniu korzysta się ze zmiennych i stałych do przechowywania wartości, których używa program.
Gdy program potrzebuje danych, aby określić, co wydarzy się dalej, obliczenia i decyzje komputera opierają się na wartościach przechowywanych w zmiennych i stałych w kodzie.
Choć termin zmienna jest czasami używany ogólnie do określenia zarówno zmiennych, jak i stałych, różnią się one między sobą jedną ważną rzeczą: wartości zmiennych można zmieniać podczas działania programu, a wartości stałych nie można zmienić podczas działania programu. Innymi słowy, wartość zmiennej jest modyfikowalna, podczas gdy wartość stałej jest niemodyfikowalna.
Składnia zmiennych i stałych
Składnia zmiennej jest następująca:
Element var na początku wiersza wskazuje, że jest to zmienna.
Podstawowa składnia stałej jest następująca:
Zwróć uwagę, że jedyną różnicą w składni zmiennej i stałej jest to, że var nie występuje w stałej, ale jest obecne w zmiennej.
Teraz zobaczmy, co kryje się pod tą składnią:
name |
Pamiętaj, że |
type |
Typ wyjaśnia, co można zrobić z wartością w tej zmiennej. Zwróć uwagę, że dwukropek : oddziela nazwę i typ. |
value |
W przypadku stałej wartość ta pozostanie – żadna niespodzianka – stała. W przypadku zmiennej jest to wartość, od której zmienna się zaczyna, chociaż w trakcie wykonywania programu może się ona zmieniać. Jest to wartość początkowa. Zauważ, że znak równości Ustawienie wartości początkowej dla zmiennej jest opcjonalne, ale jest to dobra praktyka. Natomiast ustawienie wartości dla stałej jest wymagane. |
Identyfikator
Identyfikator to unikatowa nazwa, którą programista nadaje wyrażeniu.
Identyfikator i nazwa są synonimami.
Reguły i konwencje nazewnictwa
W Verse obowiązują pewne reguły nazywania rzeczy. Podczas tworzenia zmiennych i stałych, pamiętaj o następujących regułach:
- W miarę możliwości nadawaj zmiennym (i innym wyrażeniom) nazwy, które wskazują na to, co robią.
- Dobrą praktyką jest nazywanie zmiennych w spójny sposób, dzięki czemu inni będą mogli łatwiej odczytać twój kod (a tobie łatwiej będzie go zapamiętać).
- Pierwszy znak w identyfikatorze musi być literą lub znakiem podkreślenia (_).
- Kolejne znaki muszą być literami, cyframi lub znakiem podkreślenia. W nazwie może występować więcej niż jeden znak podkreślenia, a nawet może ona zawierać dwa lub więcej znaków podkreślenia obok siebie.
- Identyfikatory zmiennych ani stałych nie mogą zawierać spacji.
- W Verse rozróżniana jest wielkość liter, więc ważne jest, aby zachować spójność w pisowni. W przeciwnym razie spowoduje to błędy w kodzie.
Pełny przewodnik po konwencjach nazewnictwa w Verse znajduje się w przewodniku stylistycznym po kodzie Verse.
Deklarowanie zmiennej
Każda zmienna lub stała składa się z trzech podstawowych elementów: identyfikatora (nazwy), typu wartości, którą może przechowywać, oraz samej wartości.
var name : type = value
W Verse zmienną tworzysz poprzez zadeklarowanie jej. Aby zadeklarować zmienną, należy podać wszystkie trzy elementy: identyfikator, typ i wartość.
Inicjacja
Ustawianie wartości początkowej dla stałej (lub dowolnego innego wyrażenia) nazywane jest inicjacją. Inicjacja jest wymagana, gdy deklarujesz zmienną lub stałą.
Za pomocą operatora : = można inicjować wartości w stałej lub zmiennej.
Zwróć uwagę, że w przypadku tego operatora nazwa znajduje się przed znakiem :, typ znajduje się między znakami : i =, a wartość znajduje się po znaku =.
var Coins : int = 500
Efektywne używanie stałych
Jeśli masz wartość, która pojawia się w wielu miejscach w kodzie i nigdy się nie zmienia, warto użyć stałej.
Pamiętasz literały, o których mówiliśmy w lekcji 2? Literał to wartość, która nigdy się nie zmienia. Z literałów najlepiej korzystać oszczędnie.
Dla przykładu, jeśli twoja gra przewiduje zakup pułapki na myszy za sto monet, możesz wprowadzić to na dwa sposoby. Pierwszy to umieszczenie w programie literalnej (niezmiennej) wartości 100 w miejscu, gdzie kod odejmuje wartość od Coins przy każdym zakupie takiej pułapki – lub (i to jest o wiele lepsze rozwiązanie!) możesz zadeklarować i użyć stałej, takiej jak CoinsPerMousetrap, która przechowuje wartość 100.
CoinsPerMousetrap : int = 100
Takie użycie stałych sprawia, że zarówno tobie, jak i członkom twojego zespołu łatwiej jest odczytać kod, w przypadku gdy ktoś po jakimś czasie postanowi zmodyfikować kod, który nie był ruszany od dawna.
Gdy użyjesz dobrze nazwanych stałych zamiast niewyjaśnionych literałów, kod będzie również łatwiejszy do zrozumienia przez innych programistów.
Kolejną zaletą takiego sposobu korzystania ze stałych jest to, że jeśli zdecydujesz się zmodyfikować wartość, na przykład koszt pułapki na myszy, wystarczy zaktualizować stałą, a nie każdą pojedynczą instancję, w której ta wartość jest używana.
W miarę możliwości używaj zrozumiałych nazw dla swoich stałych. W powyższym przykładzie CoinsPerMousetrap wyraźnie reprezentuje stałą dla liczby monet, które gracz wyda na zakup pułapki na myszy.
Jeśli wartość nie będzie się zmieniać, zapisz ją jako stałą.
Przypisywanie wartości do zmiennej
W przeciwieństwie do stałych, wartości zmiennych można zmieniać podczas działania programu.
Dzięki stałym nie musisz ciągle wprowadzać tej samej wartości, ale jaka jest korzyść z użycia zmiennej?
Cóż, czasami trzeba zmienić wartość na podstawie innych danych wejściowych.
Na przykład, kiedy gracz kupuje pułapkę na myszy, możesz użyć tego wiersza kodu, aby odjąć liczbę monet wydanych przez gracza na pułapkę od całkowitej liczby monet posiadanych przez gracza:
set Coins = Coins - CoinsPerMousetrap
Przeanalizujmy ten wiersz kodu:
Pierwsza część, set, to słowo kluczowe wbudowane w Verse. Słowa kluczowego set można użyć do modyfikacji wartości zmiennej, więc ten wiersz kodu mówi, że Coins można zmienić na wartość równą Coins pomniejszoną o CoinsPerMousetrap.
Tej zmiany wartości za pomocą set można dokonać tylko przy użyciu zmiennej. Słowa kluczowego set nie można użyć ze stałą.
W tym przypadku zarówno Coins, jak i CoinsPerMousetrap byłyby identyfikatorami dla wyrażeń, które już istnieją w programie.
Podsumowanie
- Zmienne i stałe są używane do przechowywania wartości.
- Podstawową różnicą między nimi jest to, że wartości stałej nie można zmienić podczas działania programu, ale wartość zmiennej można.
- Zmienne i stałe są wyrażeniami, które po dokonaniu oceny generują wynik.
- Zmienne i stałe w Verse są deklarowane. Odbywa się to poprzez nadanie wyrażeniu unikatowej nazwy, czyli identyfikatora, oraz typu i wartości.
- Ustawienie wartości początkowej dla wyrażenia nazywane jest inicjacją.