Menu
CoddyTech

O método map

Parte da seção Lógica e fluxo do Journey de GDScript da Coddy. Lição 60 de 78.

Uma função de ordem superior é uma função que recebe outra função como argumento. Os arrays têm várias delas, e map() é a primeira.

map() chama uma função para cada elemento de um array e retorna um novo array com os resultados, na mesma ordem:

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]

Passe a função pelo nome, sem parênteses: map(square) passa a função adiante, enquanto map(square()) tentaria chamá-la imediatamente. map() então a chama uma vez para cada elemento: 1 se torna 1, 2 se torna 4, 3 se torna 9, e assim por diante.

Para um cálculo curto, uma lambda poupa você de criar uma função separada:

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

O novo array tem o mesmo tamanho que o original, e o próprio numbers não muda. Os resultados podem ter um tipo diferente do dos elementos:

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

map() retorna um Array comum, mesmo quando você o chama em um tipado, como Array[int]. Armazenar esse resultado em uma variável Array[int] interrompe o programa com um erro, então armazene-o em uma variável sem tipo ou em um Array.

split() retorna um PackedStringArray, que não tem map(). Primeiro, transforme-o em um Array: Array("1,2,3".split(",")).map(func(s): return int(s)) resulta em [1, 2, 3].

challenge icon

Desafio

Fácil

Escreva uma função chamada convert_to_uppercase que recebe um array de strings, strings, e retorna um novo array com todas as strings em letras maiúsculas.

Use map() com uma função lambda, sem usar loops. Por exemplo, convert_to_uppercase(["hello", "world"]) retorna ["HELLO", "WORLD"].

Os testes chamam convert_to_uppercase() por conta própria. Não a chame e não imprima nada.

Experimente você mesmo

func convert_to_uppercase(strings: Array[String]):
	# Escreva o código aqui
	pass
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e fluxo

Pratique por conta própria: Compilador de GDScript online