Menu
CoddyTech

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 + b

Zaczyna 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))
8

add(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ć”.

challenge icon

Wyzwanie

Łatwy

Program odczytuje trzy liczby całkowite: a, b i c.

  1. Utwórz lambdę z trzema parametrami, x, y i z, która zwraca ich iloczyn, i zapisz ją w zmiennej o nazwie multiply.
  2. Wywołaj ją z argumentami a, b i c, a następnie wypisz wynik.

Dla danych wejściowych 2, 3 i 4 wynikiem jest:

24

Spró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
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator GDScript online