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));