Recherche…


Remarques

Les directives d' import et de library peuvent vous aider à créer une base de code modulable et partageable. Chaque application Dart est une library , même si elle n'utilise pas de directive de bibliothèque. Les bibliothèques peuvent être distribuées à l'aide de packages. Pour plus d'informations sur pub, un gestionnaire de packages inclus dans le SDK, voir Package Package et Asset Manager .

Utiliser les librairies

Utilisez import pour spécifier comment un espace de noms d'une bibliothèque est utilisé dans le cadre d'une autre bibliothèque.

import 'dart:html';

Le seul argument requis pour import est un URI spécifiant la bibliothèque. Pour les bibliothèques intégrées, l'URI a le schéma spécial dart: :. Pour les autres bibliothèques, vous pouvez utiliser un chemin de système de fichiers ou le package: scheme. Le package: scheme spécifie les bibliothèques fournies par un gestionnaire de packages tel que l'outil pub. Par exemple:

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

Bibliothèques et visibilité

Contrairement à Java, Dart n'a pas les mots clés public , protected et private. Si un identifiant commence par un trait de soulignement _ , il est privé à sa bibliothèque.

Si, par exemple, vous avez la classe A dans un fichier de bibliothèque distinct (par exemple, other.dart ), par exemple:

library other;

class A {
  int _private = 0;

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

puis importez-le dans votre application principale, par exemple:

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

Vous obtenez le résultat attendu:

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

Spécifier un préfixe de bibliothèque

Si vous importez deux bibliothèques ayant des identificateurs en conflit, vous pouvez spécifier un préfixe pour une ou les deux bibliothèques. Par exemple, si library1 et library2 ont tous deux une classe Element, vous pourriez avoir un code comme celui-ci:

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.

Importer seulement une partie d'une bibliothèque

Si vous souhaitez utiliser uniquement une partie d'une bibliothèque, vous pouvez importer la bibliothèque de manière sélective. Par exemple:

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

Charger une bibliothèque

Le chargement différé (également appelé chargement différé) permet à une application de charger une bibliothèque à la demande, si et quand cela est nécessaire. Pour charger une bibliothèque paresseusement, vous devez d'abord l'importer en différé comme.

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

Lorsque vous avez besoin de la bibliothèque, appelez loadLibrary () en utilisant l'identifiant de la bibliothèque.

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

Dans le code précédent, l' await mot - clé interrompt l' exécution jusqu'à ce que la bibliothèque est chargée. Pour plus d'informations sur l' async et l' await , consultez d'autres exemples ici: prise en charge asynchrone ou visitez la partie support asynchrone de la visite linguistique.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow