Funciones anónimas y cierres
Capturar variables en funciones insertadas.
Funciones anónimas y cierres es una lección gratuita de Dart Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Dart Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Dart Academy incluye 4 lecciones en total.
Funciones sin nombre
A veces necesita una función una sola vez y nunca más. Una función anónima no tiene nombre y se escribe justo donde se utiliza. ✨
La estructura básica
Una función anónima consta simplemente de parámetros y un cuerpo, sin ningún nombre delante. Puede almacenarla en una variable.
var greet = (String n) {
print('Hi ' + n);
};Llamar a la función almacenada
Una vez almacenada, la llama a través de la variable, igual que cualquier función con nombre, usando paréntesis.
greet('Ada');Pasar una función en línea
Lo más habitual es pasar una función anónima directamente a un método. Aquí forEach la llama para cada elemento.
[1, 2, 3].forEach((n) {
print(n * 2);
});Funciones flecha anónimas
Para un cuerpo de una sola expresión, combine las funciones anónimas con la flecha para mantener el código compacto.
var doubled = [1, 2, 3].map((n) => n * 2);¿Qué es un cierre?
Un cierre es una función que recuerda las variables del lugar donde se creó, incluso después de que finalice ese ámbito externo.
Capturar una variable
La función interna siguiente captura step. Sigue utilizando ese valor cada vez que llama más adelante a la función devuelta.
Function adder(int step) {
return (int x) => x + step;
}Cada cierre es independiente
Llame dos veces a la fábrica y cada cierre devuelto conservará un valor capturado independiente. No interfieren entre sí.
var add5 = adder(5);
var add10 = adder(10);Los cierres conservan el estado
Una variable capturada puede cambiar entre llamadas, lo que permite que un cierre recuerde el progreso, como un pequeño contador.
int count = 0;
var tick = () => ++count;Por qué es importante
Las funciones de devolución de llamada, los controladores de eventos y los métodos de listas dependen de los cierres. Permiten agrupar el comportamiento con los datos que necesita.
Manténgalos pequeños
Los cierres en línea son excelentes cuando son breves. Si uno se vuelve complejo, asígnele un nombre real para que los demás puedan leerlo fácilmente.
Comprobación rápida
¿Qué hace que una función sea un cierre?
Repaso
Ha conocido las funciones anónimas para usos puntuales y los cierres, que capturan variables circundantes para conservar su propio estado. 🎯
Preguntas frecuentes
¿La lección «Funciones anónimas y cierres» es gratis?
Sí — el texto completo de «Funciones anónimas y cierres» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Dart Academy, actualiza a CoddyKit PRO. El curso de Dart Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Funciones anónimas y cierres»?
Capturar variables en funciones insertadas. Practicas Dart Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Dart Academy?
No se requiere experiencia previa. Dart Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Funciones anónimas y cierres»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Dart Academy?
Sí. Cada lección de Dart Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Sintaxis de flecha para funciones de una línea
- Funciones anónimas y cierres
- Tipos anulables y el signo de interrogación
- Operadores conscientes de null: ?., ?? y !