Menu
CoddyTech

Funções Lambda Parte 1

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

Uma lambda é uma função sem nome, escrita como um valor. Você pode armazená-la em uma variável, como um número ou uma string:

var add = func(a, b): return a + b

Começa com func, os parâmetros e dois-pontos, como qualquer função, mas não tem nome. O corpo de uma única instrução pode ficar na mesma linha.

Para executar uma lambda armazenada em uma variável, chame seu método call() com os argumentos:

print(add.call(5, 3))
8

add(5, 3) não funciona: o GDScript procura uma função chamada add no script e informa Function "add()" not found antes de o programa ser executado.

Uma lambda mais longa tem um bloco indentado. Como qualquer função, ela precisa de return para retornar um valor:

var greet = func(player_name):
	var message = "Hello, " + player_name
	return message + "!"
print(greet.call("Ana"))
Hello, Ana!

Uma lambda sem return retorna null, então func(n): n * 2 calcula o valor e o descarta.

Os parâmetros e o resultado podem ter tipos: func(n: int) -> int: return n * 2. O valor de uma lambda é um Callable, o tipo do GDScript para “algo que você pode chamar”.

challenge icon

Desafio

Fácil

O programa lê três números inteiros, a, b e c.

  1. Crie uma lambda com três parâmetros, x, y e z, que retorne o produto deles, e armazene-a em uma variável chamada multiply.
  2. Chame-a com a, b e c e imprima o resultado.

Para as entradas 2, 3 e 4, a saída é:

24

Experimente você mesmo

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())
	# Crie a função lambda multiply aqui

	# Chame multiply com a, b e c e imprima o resultado
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