Menu
CoddyTech

Il metodo map

Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 60 di 78.

Una funzione di ordine superiore è una funzione che accetta un'altra funzione come argomento. Gli array ne hanno diverse e map() è la prima.

map() richiama una funzione su ogni elemento di un array e restituisce un array nuovo con i risultati, nello stesso ordine:

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]

Passa la funzione usando il suo nome, senza parentesi: map(square) passa la funzione, mentre map(square()) proverebbe a chiamarla subito. map() la chiama poi una volta per ogni elemento: 1 diventa 1, 2 diventa 4, 3 diventa 9 e così via.

Per un calcolo breve, una lambda ti evita di definire una funzione separata:

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

Il nuovo array ha le stesse dimensioni dell'originale e numbers non cambia. I risultati possono essere di un tipo diverso da quello degli elementi:

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

map() restituisce un semplice Array, anche quando lo chiami su un array tipizzato come Array[int]. Memorizzare il risultato in una variabile Array[int] blocca il programma con un errore, quindi memorizzalo in una variabile non tipizzata o in un Array.

split() restituisce un PackedStringArray, che non ha map(). Per prima cosa, trasformalo in un Array: Array("1,2,3".split(",")).map(func(s): return int(s)) restituisce [1, 2, 3].

challenge icon

Sfida

Facile

Scrivi una funzione chiamata convert_to_uppercase che accetta un array di stringhe, strings, e restituisce un nuovo array con ogni stringa in maiuscolo.

Usa map() con una lambda, senza cicli. Ad esempio, convert_to_uppercase(["hello", "world"]) restituisce ["HELLO", "WORLD"].

I test chiamano direttamente convert_to_uppercase(). Non chiamarla e non stampare nulla.

Provalo tu

func convert_to_uppercase(strings: Array[String]):
	# Scrivi il codice qui
	pass
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore GDScript online