‫Cześć i witaj.
‫A w następnej kolejności przyjrzymy się, jak możemy zwrócić wartości z naszych funkcji przy
‫użyciu różnych typów zwracanych i instrukcji return.
‫Zanurzmy się i zobaczmy, jak to działa.
‫Na ostatnim wykładzie powiedzieliśmy, że jeśli funkcja nie zwraca wartości, to typem zwracanym powinien być void,
‫co tutaj zrobiliśmy.
‫Ale co, gdybyśmy chcieli skorzystać z funkcji, takiej jak uzyskanie w zasadzie sprawdzenia, czy powinniśmy się odwrócić?
‫Wiesz, ta funkcja w instrukcji if, gdybyśmy mogli powiedzieć, że powinna się
‫odwrócić, byłaby znacznie czystszą funkcją na koniec dnia.
‫Więc jak to robimy?
‫Jak osiągnąć funkcję, która może zwrócić wyrażenie logiczne?
‫Cóż, sposób, w jaki to robimy, to po prostu użycie typu zamiast void.
‫Więc gdybyśmy mieli raz zwrócić wyrażenie logiczne, ponieważ wpisz bool tak, jak byśmy to zrobili dla zmiennej.
‫Ale to, co odróżnia funkcję od zmiennej, to fakt, że umieszczamy po niej nawiasy, co
‫czyni ją funkcją, a nie zmienną.
‫A co możemy zrobić, to wywołać powrót platformy, a następnie umieścić nasze nawiasy.
‫A w tym przypadku nie mam nic, co chciałbym przekazać jako argument do tej funkcji, więc mogę po
‫prostu zostawić pustą listę parametrów, wstawić średnik na końcu wiersza, a następnie skopiować całą linię i
‫przejść dalej do ruchomej platformy.
‫CP I to na samym końcu pliku, możesz umieścić go w dowolnym miejscu pomiędzy dowolną z
‫funkcji.
‫Tylko upewnij się, że nie znajduje się w funkcji.
‫Wkleję to tutaj.
‫Zamierzam dodać wcięcie i dodać klasę i.
‫Działa rozdzielczość zakresu.
‫Tak więc okrężnica poruszająca się platforma powinna powrócić do platformy, a następnie usuń średnik, zamiast tego dodaj kilka nawiasów
‫klamrowych.
‫A to, co chcemy tutaj zrobić, to jeśli chcemy faktycznie zwrócić wynik, musimy użyć specjalnego
‫słowa kluczowego return, po którym następuje wyrażenie właściwego typu.
‫Więc w tym przypadku musi to być wyrażenie logiczne.
‫Mogłem więc zwrócić prawdę, a następnie wstawić średnik na końcu, lub mógłbym zwrócić fałsz, a następnie wstawić średnik na
‫końcu.
‫Ale to nie musi być takie proste.
‫Może to być właściwie dowolne wyrażenie.
‫Może to być kolejne wywołanie funkcji, może to być zmienna, może to być użycie niektórych operatorów,
‫tak jak mamy tutaj w naszym oświadczeniu.
‫Więc w rzeczywistości chodźmy dalej i spróbujmy to zrobić.
‫Przyjmę to wyrażenie.
‫Przebyta odległość i jest większa niż odległość ruchu.
‫Wytnę to i umieszczę jako wyrażenie zwracające dla tej funkcji powrotu platformy.
‫Inez będzie tutaj narzekać, ponieważ przesunięcie na odległość nie jest zmienną lokalną w naszej funkcji
‫powrotu platformy powinno.
‫Więc zamierzamy przenieść więcej rzeczy.
‫Ale zanim to zrobimy, nie chcę zapomnieć o wywołaniu tego polecenia powinno platforma powrócić w instrukcji if,
‫więc platforma powinna powrócić, a następnie umieścić nawiasy, aby funkcja faktycznie została wywołana w naszym
‫oświadczeniu.
‫Więc teraz zaczyna mi się trochę lepiej czytać.
‫Jeśli platforma powinna powrócić, wykonujemy wszystkie poniższe czynności.
‫Więc teraz musimy przenieść zmienną przesuniętą na odległość, którą mamy w platformie MOVE.
‫W rzeczywistości nie potrzebujemy tego w platformie MOVE.
‫Wytnę go, przyniosę i umieszczę na linii przed naszym oświadczeniem zwrotnym.
‫Zwykle instrukcja return jest ostatnią rzeczą w funkcji, ponieważ po powrocie z funkcji nie robisz
‫już nic więcej.
‫Jeśli miałbym umieścić coś w rodzaju komunikatu dziennika, umieszczę log po mojej deklaracji powrotu z jakimś
‫komunikatem.
‫Zwykle to, co się wydarzy, to ostrzeżenie od kompilatora, że ta linia nigdy nie zostanie
‫osiągnięta i że prawdopodobnie nie chciałeś tego zrobić.
‫Tak więc oświadczenie zwrotne jest zwykle ostatnią rzeczą.
‫Więc po przejściu przez linię, która definiuje odległość przebytą w naszej funkcji powrotu platformy powinno, widzisz, że
‫teraz mówi: hej, nie mam bieżącej lokalizacji, a obecną lokalizację możemy po prostu
‫bardzo łatwo pobrać, mamy ustaw bieżącą lokalizację tuż przed wywołaniem, jeśli platforma
‫powróci.
‫Tak więc uzyskanie aktywnej lokalizacji jest dokładnie tym, czego chcemy.
‫Więc po prostu wstawię to zamiast zmiennej, po prostu zadzwonię, aby dostać się do lokalizacji
‫w miejscu i powinna powrócić platforma.
‫Więc teraz mamy to, że przesunięta odległość jest równa efektowi, odległość między początkową lokalizacją
‫a bieżącą lokalizacją aktora.
‫Więc jeśli jest to większa niż skonfigurowana odległość ruchu, to tak, platforma powinna powrócić.
‫To właśnie mówi ta funkcja i pozwala nam używać jej na wyższym poziomie abstrakcji od
‫wewnątrz i przesuwać funkcję platformy.
‫Teraz zauważysz, że teraz skarży się, że nie możemy przesunąć odległości do przekroczenia liczby wydruków.
‫Cóż, to nic wielkiego.
‫Właściwie nie chcę już tego drukować.
‫I tak trochę psuje moją funkcję.
‫Więc zamierzam usunąć linię zmiennej przeregulowania.
‫Zamierzam usunąć wiersz get name, usunę komunikat dziennika, ponieważ był tam
‫tylko tymczasowo, stąd nazwa tymczasowego dziennika.
‫Więc teraz ruszam.
‫Funkcja platformy zaczyna wyglądać znacznie czyściej.
‫Widzimy, że robimy tutaj aktualizację lokalizacji.
‫Możemy zobaczyć, czy platforma powinna wrócić i czy powinna.
‫Następnie aktualizujemy lokalizację i obracamy ją.
‫Teraz jedna rzecz, która moim zdaniem wyglądałaby tutaj trochę lepiej, to gdybyśmy mieli instrukcję alt zamiast
‫tego pakietu kodu na górze.
‫Więc jeśli platforma powinna powrócić, wykonamy to, w przeciwnym razie wykonamy normalny kod w zakresie przesuwania go
‫do przodu.
‫Więc pamiętaj, że cofnęliśmy się do tego, kiedy rozmawialiśmy o instrukcji alt, po prostu pojawia się ona po stwierdzeniu if i po
‫prostu robimy to w ten sposób.
‫Po nawiasach klamrowych mamy nową linię i wpisujemy else, potem kolejną nową linię i otwieramy kilka nowych nawiasów i
‫możemy po prostu przenieść ten kod, który jest tutaj, na górze naszego znacznika.
‫Możemy to wziąć i przenieść w dół do instrukcji alt.
‫Więc teraz wydaje się to całkiem proste.
‫Czy platforma powinna powrócić, a następnie wykonać kod, który zwraca platformę w innym przypadku?
‫Posuwamy platformę do przodu z naszą prędkością platformy.
‫Teraz chciałbym zachęcić Cię do stworzenia własnej funkcji ze zwracaną wartością.
‫Chciałbym, abyś dodał funkcję przenieś odległość.
‫Więc obecnie obliczyliśmy to w zmiennej zwanej przebytą odległością.
‫Chciałbym, abyś zamiast tego zastąpił to wywołaniem funkcji.
‫Powinna więc zwrócić wartość zmiennoprzecinkową, ponieważ w ten sposób przesunął się rodzaj odległości, powinniśmy ją wywołać, gdy platforma
‫powróci.
‫Więc zamiast korzystać z efektów tego, powinniśmy skorzystać z własnej implementacji.
‫Więc jaki kod powinniśmy?
‫Czy powinien zawierać z jakim trenerem do niego włożymy?
‫Podpowiedź jest taka, że już wpisaliśmy ten kod, więc po prostu kopiujesz i wklejasz go do nowej
‫funkcji.
‫Ale zastanów się, jakie powinno być wyrażenie zwracające, tak aby zwracana
‫była wartość przesuniętej odległości.
‫Wstrzymaj wideo i spróbuj.
‫Dobra.
‫Witamy spowrotem.
‫Przejdźmy więc do sekcji Z wyprzedzeniem.
‫Dodamy tutaj nową funkcję dla wartości zwracanej lotu o nazwie pobierz przesuniętą odległość.
‫A potem nie będziemy mieć żadnych argumentów w nawiasach, a potem przejdziemy do naszej ruchomej
‫platformy.
‫CP Dodamy pływak, ruchomą platformę, dwukropek, przesuniętą odległość okrężnicy lub przesuniemy odległość, powinienem
‫powiedzieć nawiasy.
‫A potem w następnym wierszu umieścimy nowy zestaw nawiasów klamrowych.
‫A to, co chcemy zwrócić, to dosłownie wyrażenie, którego używamy do stworzenia naszego ruchu na
‫odległość, więc mogę to wyciąć i wkleić tutaj.
‫Więc to wpływa na dwukropek, dwukropek, test, lokalizację początkową, uzyskaj aktywną lokalizację i umieść średnik na końcu tej
‫linii.
‫A to oznacza, że platforma powinna powrócić.
‫Teraz zamiast mieć tę zmienną przesunięcia odległości, usunę tę linię, która jest w połowie ukończona.
‫Wrócimy po przesunięciu dystansu.
‫Nawiasy są większe niż odległość ruchu.
‫Więc wzięliśmy to, co wchodziło w skład zmiennej, i zamiast tego wyciągnęliśmy to do własnej funkcji.
‫A to oznacza, że ilekroć chcemy odwołać się do przebytej odległości, jeśli chcielibyśmy zachować
‫ten komunikat dziennika na platformie MOVE, możemy łatwo po prostu wywołać funkcję, uzyskać odległość przesuniętą od dowolnej
‫funkcji w naszej klasie.
‫Świetna sprawa.
‫Tak więc na tym wykładzie nauczyliśmy się o instrukcjach return i wartościach zwracanych i użyliśmy ich do stworzenia
‫dwóch nowych funkcji w klasie.
‫Do zobaczenia na następnym wykładzie.