Funkcje lambda — część 1
Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 54 z 78.
Lambda to funkcja bez nazwy, zapisana jako wartość. Możesz przechowywać ją w zmiennej, tak jak liczbę lub ciąg znaków:
var add = func(a, b): return a + bZaczyna się od func, parametrów i dwukropka, jak każda funkcja, ale nie ma nazwy. Ciało składające się z jednej instrukcji może pozostać w tym samym wierszu.
Aby uruchomić lambdę przechowywaną w zmiennej, wywołaj jej metodę call() z argumentami:
print(add.call(5, 3))8add(5, 3) nie działa: GDScript szuka w skrypcie funkcji o nazwie add i zgłasza Function "add()" not found przed uruchomieniem programu.
Dłuższa lambda ma wcięty blok. Jak każda funkcja, potrzebuje return, aby zwrócić wartość:
var greet = func(player_name):
var message = "Hello, " + player_name
return message + "!"
print(greet.call("Ana"))Hello, Ana!Lambdę bez return zwraca null, więc func(n): n * 2 oblicza wartość i ją odrzuca.
Parametry i wynik mogą mieć typy: func(n: int) -> int: return n * 2. Wartość lambdy ma typ Callable, czyli typ GDScript oznaczający „coś, co można wywołać”.
Wyzwanie
ŁatwyProgram odczytuje trzy liczby całkowite: a, b i c.
- Utwórz lambdę z trzema parametrami,
x,yiz, która zwraca ich iloczyn, i zapisz ją w zmiennej o nazwiemultiply. - Wywołaj ją z argumentami
a,bic, a następnie wypisz wynik.
Dla danych wejściowych 2, 3 i 4 wynikiem jest:
24Spróbuj swoich sił
extends Node
func _ready():
var a := int(OS.read_string_from_stdin())
var b := int(OS.read_string_from_stdin())
var c := int(OS.read_string_from_stdin())
# Utwórz tutaj funkcję lambda multiply
# Wywołaj multiply z a, b i c, a następnie wypisz wynik
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Łańcuchy znaków — zagadnienia zaawansowane
Metody łańcuchów znakówWyszukiwanie w łańcuchach znakówZastępowanie i przycinanieDzielenie i łączeniePodsumowanie — sprawdzanie nazwy użytkownika4Słowniki, część 2
Zagnieżdżone słownikiTablice słownikówŁączenie słownikówKopiowanie słownikówPodsumowanie – licznik częstotliwości7Typy wyliczeniowe
Czym jest typ wyliczeniowy?Definiowanie typu wyliczeniowegoWartości typu wyliczeniowegoTypy wyliczeniowe w matchPowtórka – sygnalizacja świetlna10Zaawansowane funkcje
Zwracanie wielu wartościFunkcje lambda — część 1Funkcje lambda — część 2Powtórka — sortowanie za pomocą lambdaFunkcje rekurencyjne — część 1Funkcje rekurencyjne — część 2Powtórka — sumowanie zagnieżdżonej tablicy13System zarządzania zapasami
Omówienie projektuDodawanie produktu2Zaawansowane podejmowanie decyzji
Dopasowanie ze zmiennymiStrażnicy dopasowaniaWzorce tablicWzorce słownikówSprawdzanie przynależnościPowtórka — parser poleceń5Aplikacja książki kontaktów
Wyświetlanie menuDodawanie kontaktu8Menedżer danych studentów
Przegląd projektuDodaj studenta3Tablice wielowymiarowe
Podstawy tablic 2DDostęp do elementów tablic 2DPętle zagnieżdżone z tablicami 2DPodsumowanie — tablice 2DTablice postrzępioneTypowe wzorce tablic 2DPodsumowanie — plansza do gry6Zbiory ze słownikami
Czym jest zbiór?Słownik jako zbiórDodawanie i usuwanieSuma i część wspólnaRóżnica zbiorówPowtórka – usuwanie duplikatów9Zaawansowana agregacja danych
Sumowanie wartościZnajdowanie minimum i maksimumSortowanie niestandardowePodsumowanie – Sortownik słownikówPoćwicz samodzielnie: Kompilator GDScript online