dart
bibliotek
Sök…
Anmärkningar
import och library kan hjälpa dig att skapa en modulär och delbar kodbas. Varje Dart-app är ett library , även om det inte använder ett bibliotekdirektiv. Bibliotek kan distribueras med paket. Se Pub Package and Asset Manager för information om pub, en pakethanterare som ingår i SDK.
Använda bibliotek
Använd import att ange hur ett namnutrymme från ett bibliotek ska användas inom ramen för ett annat bibliotek.
import 'dart:html';
Det enda nödvändiga argumentet för att import är en URI som specificerar biblioteket. För inbyggda bibliotek har URI det speciella dart: schemat. För andra bibliotek kan du använda en filsystemväg eller package: schema. package: schema anger bibliotek som tillhandahålls av en paketansvarig, t.ex. pubverktyget. Till exempel:
import 'dart:io';
import 'package:mylib/mylib.dart';
import 'package:utils/utils.dart';
Bibliotek och synlighet
Till skillnad från Java, har Dart inte nyckelorden public , protected och privata. Om en identifierare börjar med en understruk _ är den privat för dess bibliotek.
Om du till exempel har klass A i en separat biblioteksfil (t.ex. other.dart ), till exempel:
library other;
class A {
int _private = 0;
testA() {
print('int value: $_private'); // 0
_private = 5;
print('int value: $_private'); // 5
}
}
och importera den sedan till din huvudapp, till exempel:
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
}
}
Du får den förväntade effekten:
String value: Hello
int value: 0
int value: 5
String value: Hello
Ange ett biblioteksprefix
Om du importerar två bibliotek som har motstridiga identifierare kan du ange ett prefix för ett eller båda biblioteken. Om till exempel bibliotek1 och bibliotek2 har en elementklass, kan du ha kod som denna:
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.
Importerar bara en del av ett bibliotek
Om du bara vill använda en del av ett bibliotek kan du selektivt importera biblioteket. Till exempel:
// 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 laddar ett bibliotek
Uppskjuten lastning (även kallad lat laddning) tillåter en applikation att ladda ett bibliotek på begäran, om och när det behövs. För att lazily ladda ett bibliotek måste du först importera det med uppskjuten som.
import 'package:deferred/hello.dart' deferred as hello;
När du behöver biblioteket, anropa loadLibrary () med hjälp av bibliotekets identifierare.
greet() async {
await hello.loadLibrary();
hello.printGreeting();
}
I den föregående koden pausar det await nyckelordet körning tills biblioteket laddas. För mer information om async och await , se fler exempel här asynkronistöd eller besök asynkronisupportdelen av språktouren.