Do tej pory pokazaliśmy ci, jak tworzyć stałe i zmienne do przechowywania i używania wartości, a także jak podejmować decyzje w kodzie za pomocą wyrażenia if i operatorów decyzyjnych, takich jak and oraz or.
Teraz przyszła pora na naukę pisania kodu, który możesz łatwo ponownie wykorzystać w swoim programie.
W lekcji 2 powiedzieliśmy sobie, że wyrażenie jest najmniejszą jednostką kodu, która zwraca wynik, pamiętasz? I że kiedy wyrażenie jest wykonywane i wyprowadza wartość, to ta wyprowadzona wartość jest wynikiem?
Możesz to wykorzystać, aby usprawnić swój kod.
Wyrażenia można łączyć z innymi wyrażeniami, tworząc funkcje, a funkcji można używać wielokrotnie w kodzie bez konieczności ich przepisywania za każdym razem.
Używanie wyrażeń w funkcjach
Funkcja (zwana też procedurą) jest kodem wielokrotnego użytku, który dostarcza instrukcji dotyczących wykonania akcji lub utworzenia wyniku wyjściowego na podstawie danych wejściowych.
Funkcje składają się z połączonych wyrażeń.
Aby zdefiniować funkcję, potrzebne są następujące elementy:
- Unikatowa nazwa, czyli identyfikator.
- Typ informacji, które będą wynikiem.
- Akcja, jaką funkcja wykona po jej wywołaniu.
Podstawowa składnia funkcji jest następująca:
name() : type =
codeblock
Więcej o blokach kodu dowiesz się w następnej lekcji – teraz musisz tylko wiedzieć, że blok kodu to miejsce, w którym umieścisz wyrażenia użyte do zbudowania funkcji.
Funkcje i wywołania funkcji
Funkcja to zasadniczo sekwencja wyrażeń, które zostały przez ciebie nazwane.
Program używa funkcji poprzez wywołanie jej nazwy. Wywołanie aktywuje tę funkcję. Jest to wywołanie funkcji.
Oznacza to, że zamiast powtarzać w kółko wszystkie wyrażenia, które umieścisz w funkcji, możesz zgrupować je w nazwanej funkcji, a następnie za każdym razem, gdy wywołasz tę funkcję w programie, komputer odwoła się do tej funkcji i wykona zawarte w niej wyrażenia.
Na przykład zamiast zawsze ustawiać wartość zmiennej CoinsPerMousetrapna 100, możesz napisać kod, który modyfikuje tę wartość, wybierając losową wartość przy każdym uruchomieniu.
W poniższym przykładzie wyrażenie jest ustawione na generowanie losowej liczby od 1 do 10 przy użyciu wyrażenia GetRandomInt(1, 10).
Poniżej możesz zobaczyć, jak to wygląda:
GetRandomInt() |
Jest to funkcja wbudowana w Verse, która generuje losową liczbę całkowitą. |
1, 10 |
Pokazuje zakres liczbowy, w którym może generować wartości. Jeśli użyjesz 20, 50, wygenerowana zostanie liczba od 20 do 50. Zwróć uwagę, że zakres jest umieszczony w nawiasie (), który jest częścią nazwy tego wyrażenia. |
Jest to wywołanie funkcji, ponieważ mówi komputerowi, aby wywołał funkcję, która generuje losową liczbę całkowitą w ustawionym przez ciebie zakresie od 1 do 10.
Gdy chcesz użyć funkcji w kodzie, wywołaj ją poprzez nazwę. Za każdym razem, gdy wywołasz GetRandomInt(), zostanie wygenerowana nowa losowa liczba.
Możesz użyć tego do losowej zmiany ceny pułapki na myszy:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Random }
OnBegin<override>()<suspends> : void =
# Zainicjuj Coins na 500. Jako że jest to zmienna, możesz ją później zmienić.
var Coins : int = 500
# Zainicjuj CoinsPerMousetrap przy użyciu losowej liczby całkowitej z przedziału od 1 do 100.
CoinsPerMousetrap : int = GetRandomInt(1, 100)
# Wyświetl bieżącą wartość monet (500) w dzienniku.
Print("Początkowa liczba monet: {Coins}.")
# Zmniejsz liczbę monet o wartość CoinsPerMousetrap i wyświetl nową wartość w dzienniku.
set Coins = Coins - CoinsPerMousetrap
Print("Po zakupie pułapki na myszy zostało monet: {Coins}.")
Zwróć uwagę, że niemal każdy wiersz kodu w powyższym przykładzie zawiera komentarz wyjaśniający jego działanie. Jest to przydatne zarówno dla ciebie, gdy wracasz do swojego kodu po pewnym czasie, jak i dla innych programistów, którzy chcą dodać lub zmodyfikować napisany przez ciebie kod.
Metody
W lekcji 2 powiedzieliśmy sobie, w jaki sposób typ definiuje operacje, które mogą być wykonywane na wartościach przechowywanych w zmiennej lub stałej, pamiętasz? Typy robią też inne rzeczy.
Typy mają operacje, które do nich należą, tak samo jak mają funkcje, które do nich należą. Funkcje te znane są jako metody i muszą być wywoływane w specjalny sposób.
Zamiast wywoływać je poprzez wpisanie ich nazwy (jak Print() lub GetRandomInt()), wywołanie metody musi zaczynać się od nazwy zmiennej (lub stałej), po której następuje ., a następnie nazwa metody. Na przykład wywołanie metody Pounce() na zmiennej Cat wyglądałoby następująco:
Cat.Pounce()
Klasy
Klasa to szablon, którego możesz użyć do tworzenia rzeczy o podobnych zachowaniach i właściwościach. Klasa jest typem złożonym, co oznacza, że składa się z zestawu danych z innych typów.
Po zdefiniowaniu klasy dane tej klasy mogą być dziedziczone przez dowolne podklasy.
Zatem metoda jest funkcją dołączoną do klasy. Z tego powodu nie każda metoda działa z każdym typem. Metoda musi być zadeklarowana w definicji klasy dla tego typu lub w klasie, z której ten typ dziedziczy. Jeśli jeszcze nie do końca wszystko jest zrozumiałe, nie martw się – to tylko krótkie wprowadzenie, a więcej o klasach dowiesz się później.
Podsumowanie
- Funkcja jest nazwaną sekwencją wyrażeń, którą można wielokrotnie wykorzystywać.
- Funkcje bywają również nazywane procedurami.
- Funkcje pozwalają zaoszczędzić czas i zmniejszyć liczbę błędów, ponieważ nie trzeba wielokrotnie wpisywać (lub utrzymywać) wielu wierszy tego samego kodu.
- Gdy używasz ponownie funkcji w wierszu kodu, robisz to za pomocą wywołania funkcji.
- Metoda to funkcja, która należy do określonego typu i musi być wywołana na zmiennej lub stałej tego typu.
- Klasy to typy złożone, które pozwalają łączyć dane z innych typów, a następnie dzielić się zachowaniami i właściwościami z podklasami.