DART: import and prefix

Como nos habrá pasado a todos, cuando te acercas a un nuevo lenguaje de programación y comienzas a juguetear con él, es habitual cometer errores absurdos, sobre todo al principio. Una vez te vas familiarizando y le coges el tono no vuelves a recaer en este tipo de cosas tontas. De hecho, se convierte en algo tan natural para ti que no consideras la posibilidad de que alguien cometa ese error.

He podido seguir el desarrollo de DART casi desde sus primeros días y he pasado por todo ello, sé además lo difícil que resulta con la escasez de documentación disponible, es por esto que me gusta ir posteando errores que he cometido yo mismo u otros usuarios que escribimos en el discuss, para que cualquier que se acerque de nuevas a DART no salga corriendo ante la frustración de tropezarse con algo tonto y no saber resolverlo.

Ya lo he comentado en otras ocasiones, no dudéis en acercaros a la web oficial de DART o a su grupo de desarrollo, os quedaréis alucianados con la gente tan simpática que hay y lo rápido que os darán solución a vuestros problemas.

Uno de los errores “tontos” de los que os hablaba es el siguiente.

Tenemos dos ficheros de código con el mismo nombre de clase en ambos. Veamos un ejemplo:

fichero #1: clientes.dart

Dentro de este fichero tenemos la clase Pedido para gestionar pedidos de clientes:

class Pedido ()  {
  ...
}

fichero #2: proveedores.dart

Dentro de este fichero tenemos la clase Pedido para gestionar pedidos de proveedores.

class Pedido () {
  ...
}

Si tratas de importar ambos ficheros en otra aplicación recibirás un error en la importación porque ambas clases se llaman igual.

La forma de solventarlo es aplicar un prefijo en la importación. Como puede verse en el ejemplo:

#import('clientes.dart');
#import('proveedores.dart', prefix:'p');

class CRM () {
  new Pedido();
  new p.Pedido();
}


 Google+

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s