Menu
CoddyTech

Metoda map

Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 60 z 78.

Funkcja wyższego rzędu to funkcja, która przyjmuje inną funkcję jako argument. Tablice mają kilka takich funkcji, a map() jest pierwszą z nich.

map() wywołuje funkcję dla każdego elementu tablicy i zwraca nową tablicę z wynikami, w tej samej kolejności:

func square(n):
	return n * n
var numbers = [1, 2, 3, 4, 5]
var squares = numbers.map(square)
print(squares)
[1, 4, 9, 16, 25]

Przekaż funkcję, używając jej nazwy, bez nawiasów: map(square) przekazuje funkcję dalej, natomiast map(square()) próbowałoby wywołać ją od razu. Następnie map() wywołuje ją dla każdego elementu: 1 zmienia się w 1, 2 zmienia się w 4, 3 zmienia się w 9 i tak dalej.

W przypadku krótkiego obliczenia lambda pozwala uniknąć tworzenia osobnej funkcji:

var squares = numbers.map(func(n): return n * n)

Nowa tablica ma taki sam rozmiar jak oryginalna, a samo numbers się nie zmienia. Wyniki mogą mieć inny typ niż elementy:

var words = ["apple", "kiwi", "banana"]
print(words.map(func(w): return w.length()))
[5, 4, 6]

map() zwraca zwykłą Array, nawet gdy wywołujesz ją na typowanej tablicy, takiej jak Array[int]. Zapisanie tego wyniku w zmiennej typu Array[int] zatrzymuje program z błędem, więc zapisz go w nietypowanej zmiennej lub w Array.

split() zwraca PackedStringArray, który nie ma metody map(). Najpierw przekształć go w tablicę: Array("1,2,3".split(",")).map(func(s): return int(s)) daje [1, 2, 3].

challenge icon

Wyzwanie

Łatwy

Napisz funkcję o nazwie convert_to_uppercase, która przyjmuje tablicę ciągów znaków, strings, i zwraca nową tablicę, w której każdy ciąg znaków jest zapisany wielkimi literami.

Użyj map() z lambdą, bez pętli. Na przykład convert_to_uppercase(["hello", "world"]) zwraca ["HELLO", "WORLD"].

Testy same wywołują convert_to_uppercase(). Nie wywołuj tej funkcji i niczego nie wypisuj.

Spróbuj swoich sił

func convert_to_uppercase(strings: Array[String]):
	# Napisz kod tutaj
	pass
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