Buscar..


Observaciones

Las directivas de import y library pueden ayudarlo a crear una base de código modular y compartible. Cada aplicación Dart es una library , incluso si no utiliza una directiva de biblioteca. Las bibliotecas se pueden distribuir usando paquetes. Consulte Pub Package y Asset Manager para obtener información sobre pub, un administrador de paquetes incluido en el SDK.

Utilizando bibliotecas

Use import para especificar cómo se usa un espacio de nombres de una biblioteca en el alcance de otra biblioteca.

import 'dart:html';

El único argumento necesario para import es un URI que especifique la biblioteca. Para las bibliotecas integradas, el URI tiene el esquema especial de dart: Para otras bibliotecas, puede utilizar una ruta del sistema de archivos o el package: esquema. El package: esquema especifica las bibliotecas proporcionadas por un administrador de paquetes como la herramienta de publicación. Por ejemplo:

import 'dart:io';
import 'package:mylib/mylib.dart';
import 'package:utils/utils.dart';

Bibliotecas y visibilidad.

A diferencia de Java, Dart no tiene las palabras clave public , protected y privada. Si un identificador comienza con un guión bajo _ , es privado a su biblioteca.

Si, por ejemplo, tiene la clase A en un archivo de biblioteca separado (por ejemplo, other.dart ), como:

library other;

class A {
  int _private = 0;

  testA() {
    print('int value: $_private');  // 0
    _private = 5;
    print('int value: $_private'); // 5
  }
}

y luego impórtelo en su aplicación principal, como:

import 'other.dart';

void main() {
  var b = new B();
  b.testB();    
}

class B extends A {
  String _private;

  testB() {
    _private = 'Hello';
    print('String value: $_private'); // Hello
    testA();
    print('String value: $_private'); // Hello
  }
}

Obtienes el resultado esperado:

String value: Hello
int value: 0
int value: 5
String value: Hello

Especificando un prefijo de biblioteca

Si importa dos bibliotecas que tienen identificadores en conflicto, puede especificar un prefijo para una o ambas bibliotecas. Por ejemplo, si library1 y library2 tienen una clase Element, entonces podría tener un código como este:

import 'package:lib1/lib1.dart';
import 'package:lib2/lib2.dart' as lib2;
// ...
var element1 = new Element(); // Uses Element from lib1.
var element2 =
    new lib2.Element();       // Uses Element from lib2.

Importando solo una parte de una biblioteca

Si desea utilizar solo una parte de una biblioteca, puede importar selectivamente la biblioteca. Por ejemplo:

// Import only foo and bar.
import 'package:lib1/lib1.dart' show foo, bar;

// Import all names EXCEPT foo.
import 'package:lib2/lib2.dart' hide foo;

Lazily cargando una biblioteca

La carga diferida (también llamada carga diferida) permite que una aplicación cargue una biblioteca a pedido, cuando sea necesario. Para cargar una biblioteca de forma perezosa, primero debe importarla usando diferido como.

import 'package:deferred/hello.dart' deferred as hello;

Cuando necesite la biblioteca, invoque loadLibrary () utilizando el identificador de la biblioteca.

greet() async {
  await hello.loadLibrary();
  hello.printGreeting();
}

En el código anterior, la await palabra clave se detiene la ejecución hasta que se carga la biblioteca. Para obtener más información sobre async y await , vea más ejemplos aquí sobre asistencia de asincronía o visite la parte de asistencia de asincronía de la gira de idiomas.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow