Zoeken…


Opmerkingen

De import en library kunnen u helpen een modulaire en deelbare codebasis te maken. Elke Dart-app is een library , zelfs als er geen bibliotheekrichtlijn wordt gebruikt. Bibliotheken kunnen worden gedistribueerd met behulp van pakketten. Zie Pub-pakket en Asset Manager voor informatie over pub, een pakketmanager die is opgenomen in de SDK.

Bibliotheken gebruiken

Gebruik import om aan te geven hoe een naamruimte uit de ene bibliotheek wordt gebruikt in het bereik van een andere bibliotheek.

import 'dart:html';

Het enige vereiste argument om te import is een URI die de bibliotheek opgeeft. Voor ingebouwde bibliotheken heeft de URI het speciale dart: schema. Voor andere bibliotheken kunt u een bestandssysteempad of het package: schema gebruiken. Het package: schema specificeert bibliotheken die worden aangeboden door een pakketbeheerder zoals de pub-tool. Bijvoorbeeld:

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

Bibliotheken en zichtbaarheid

In tegenstelling tot Java, heeft Dart niet de sleutelwoorden public , protected en private. Als een ID begint met een onderstrepingsteken _ , is deze privé voor de bibliotheek.

Als u bijvoorbeeld klasse A in een afzonderlijk bibliotheekbestand (bijvoorbeeld other.dart ) hebt, zoals:

library other;

class A {
  int _private = 0;

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

en importeer het vervolgens in uw hoofdapp, zoals:

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
  }
}

U krijgt de verwachte output:

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

Een bibliotheekvoorvoegsel opgeven

Als u twee bibliotheken met conflicterende ID's importeert, kunt u een voorvoegsel voor een of beide bibliotheken opgeven. Als library1 en library2 bijvoorbeeld beide een Element-klasse hebben, heeft u mogelijk code zoals deze:

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.

Slechts een deel van een bibliotheek importeren

Als u slechts een deel van een bibliotheek wilt gebruiken, kunt u de bibliotheek selectief importeren. Bijvoorbeeld:

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

Lui laden van een bibliotheek

Met uitgesteld laden (ook wel lui laden genoemd) kan een toepassing een bibliotheek op aanvraag laden, indien en wanneer dit nodig is. Om een bibliotheek lui te laden, moet u deze eerst importeren met uitgesteld als.

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

Wanneer u de bibliotheek nodig hebt, roept u loadLibrary () aan met behulp van de identificatie van de bibliotheek.

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

In de voorgaande code, de await trefwoord onderbroken uitgevoerd totdat de bibliotheek wordt geladen. Voor meer informatie over async en await , zie meer voorbeelden hier asynchrony support of bezoek het asynchrony support gedeelte van de taalreis.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow