Sobes.tech
Junior

¿Cuál es la diferencia entre funciones anónimas y funciones normales?

sobes.tech AI

Respuesta de la IA

Las funciones anónimas son funciones sin nombre. Se utilizan a menudo para llamadas únicas o como callbacks.

Diferencias principales:

  • Nombre: Las funciones normales tienen un nombre y pueden ser llamadas por él. Las funciones anónimas no tienen nombre.
  • Definición: Las funciones normales se definen usando la palabra clave func (o equivalente en otros lenguajes) y un nombre, seguido de parámetros y cuerpo. Las funciones anónimas se definen "en tiempo de ejecución", a menudo en el lugar donde se usan.
  • Paso: Las funciones anónimas a menudo se pasan como argumentos a otras funciones (por ejemplo, en métodos map, where, forEach). Las funciones normales también pueden pasarse, pero se usan más para definir lógica que se llama por nombre.
  • Ámbito: Las funciones anónimas tienen acceso a variables del ámbito donde se definen (efecto de "captura" de cierre). Las funciones normales generalmente tienen su propio ámbito.

Ejemplo en Dart/Flutter:

Función normal:

void greet(String name) {
  print('¡Hola, $name!');
}

// Llamada a la función normal
greet('Mundo');

Función anónima (lambda):

// Uso de función anónima en iteración de lista
List<int> numbers = [1, 2, 3, 4, 5];
numbers.forEach((number) {
  print(number * 2); // Función anónima que realiza multiplicación
});

// Función anónima asignada a una variable
var multiplyByTwo = (int number) => number * 2;
print(multiplyByTwo(5));