Parámetros nombrados entre llaves { } vs. posicionales: cuándo conviene usar cada uno
En Dart existen dos formas principales de recibir argumentos en funciones y constructores:
- Posicionales:
void enviar(String remitente, String mensaje)(el orden importa y son obligatorios salvo que se envuelvan en corchetes[]para hacerlos opcionales). - Nombrados (entre llaves
{ }):void enviar({required String remitente, required String mensaje})(se invocan explícitamente por su nombre y el orden de paso es indiferente).
Comprender el criterio para elegir entre uno y otro estilo es clave para diseñar APIs limpias y legibles en Flutter.
Cuándo usar parámetros nombrados { }
Sección titulada «Cuándo usar parámetros nombrados { }»- En la inmensa mayoría de widgets (95% de los casos): Los widgets suelen tener múltiples propiedades opcionales (
color,padding,margin,width,height). Sin parámetros nombrados, un constructor con varios parámetros resultaría ininteligible y propenso a errores:Container(null, null, Colors.red, null, 100, 200). Con parámetros nombrados el código es autoexplicativo y legible:Container(color: Colors.red, width: 100, height: 200).
Cuándo usar parámetros posicionales (sin llaves)
Sección titulada «Cuándo usar parámetros posicionales (sin llaves)»- Cuando una función o constructor tiene uno o dos argumentos obvios e indispensables donde escribir el nombre de la propiedad solo añadiría ruido innecesario.
- Ejemplo clásico en Flutter: El widget
Text('Hola mundo')en lugar de un redundanteText(text: 'Hola mundo'). - En funciones matemáticas, utilidades directas o algoritmos breves:
sumar(int a, int b).