Suche…


Bemerkungen

Mithilfe der import und library können Sie eine modulare und gemeinsam nutzbare Codebasis erstellen. Jede Dart-App ist eine library , auch wenn keine Bibliotheksanweisung verwendet wird. Bibliotheken können mit Paketen verteilt werden. Informationen zu pub, einem im SDK enthaltenen Paketmanager, finden Sie unter Pub Package und Asset Manager .

Bibliotheken verwenden

Verwenden Sie import um anzugeben, wie ein Namespace aus einer Bibliothek im Bereich einer anderen Bibliothek verwendet wird.

import 'dart:html';

Das einzige zu import Argument ist ein URI, der die Bibliothek angibt. Für integrierte Bibliotheken verfügt der URI über das spezielle dart: Schema. Für andere Bibliotheken können Sie einen Dateisystempfad oder das package: Schema verwenden. Das package: Schema gibt Bibliotheken an, die von einem Paketmanager wie dem Pub-Tool bereitgestellt werden. Zum Beispiel:

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

Bibliotheken und Sichtbarkeit

Im Gegensatz zu Java verfügt Dart nicht über die Schlüsselwörter public , protected und private. Wenn ein Bezeichner mit einem Unterstrich _ beginnt, ist er für seine Bibliothek privat.

Wenn Sie beispielsweise Klasse A in einer separaten Bibliotheksdatei (z. B. other.dart ) haben, z.

library other;

class A {
  int _private = 0;

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

und importieren Sie es dann in Ihre Hauptanwendung, beispielsweise:

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

Sie erhalten die erwartete Ausgabe:

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

Bibliothekspräfix angeben

Wenn Sie zwei Bibliotheken mit widersprüchlichen Bezeichnern importieren, können Sie ein Präfix für eine oder beide Bibliotheken angeben. Wenn beispielsweise library1 und library2 eine Element-Klasse haben, haben Sie möglicherweise folgenden Code:

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.

Importieren nur eines Teils einer Bibliothek

Wenn Sie nur einen Teil einer Bibliothek verwenden möchten, können Sie die Bibliothek selektiv importieren. Zum Beispiel:

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

Lazy Laden einer Bibliothek

Beim verzögerten Laden (auch als verzögertes Laden bezeichnet) kann eine Anwendung eine Bibliothek bei Bedarf laden, wenn dies erforderlich ist. Um eine Bibliothek träge zu laden, müssen Sie sie zuerst mit verzögert als importieren.

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

Wenn Sie die Bibliothek benötigen, rufen Sie loadLibrary () mit der Kennung der Bibliothek auf.

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

In dem obigen Code, die await Schlüsselwort Pausen Ausführung , bis die Bibliothek geladen wird. Weitere Informationen zu async und zu await async finden Sie in weiteren Beispielen hier: Asynchronisierungsunterstützung oder im Abschnitt zur Asynchronisationsunterstützung der Sprachtour.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow