dart
bibliotheken
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.