show
caso:
import 'dart:async' show Stream;
In questo modo si importa solo Stream
classe da dart:async
, quindi se si tenta di utilizzare un'altra classe da dart:async
diverso Stream
esso genererà un errore.
void main() {
List data = [1, 2, 3];
Stream stream = new Stream.fromIterable(data); // doable
StreamController controller = new StreamController(); // not doable
// because you only show Stream
}
as
caso:
import 'dart:async' as async;
In questo modo si importano tutte le classi da dart:async
e namespace con async
parola chiave.
void main() {
async.StreamController controller = new async.StreamController(); // doable
List data = [1, 2, 3];
Stream stream = new Stream.fromIterable(data); // not doable
// because you namespaced it with 'async'
}
as
di solito è usato quando ci sono classi in conflitto nella vostra libreria importata, ad esempio se si dispone di un 'my_library biblioteca.dardo' che contiene una classe denominata Stream
e si vogliono anche usare Stream
classe da dart:async
e poi:
import 'dart:async';
import 'my_library.dart';
void main() {
Stream stream = new Stream.fromIterable([1, 2]);
}
In questo modo, non sappiamo se questa classe Stream è dalla libreria asincrona o la vostra libreria. Dobbiamo usare as
:
import 'dart:async';
import 'my_library.dart' as myLib;
void main() {
Stream stream = new Stream.fromIterable([1, 2]); // from async
myLib.Stream myCustomStream = new myLib.Stream(); // from your library
}
Per show
, credo che questo viene utilizzato quando sappiamo abbiamo solo bisogno di una classe specifica. Inoltre può essere utilizzato quando ci sono classi in conflitto nella libreria importata. Diciamo che nella tua libreria hai una classe chiamata CustomStream
e Stream
e anche tu vuoi usare dart:async
, ma in questo caso hai solo bisogno di CustomStream
dalla tua libreria.
import 'dart:async';
import 'my_library.dart';
void main() {
Stream stream = new Stream.fromIterable([1, 2]); // not doable
// we don't know whether Stream
// is from async lib ir your own
CustomStream customStream = new CustomStream();// doable
}
Alcuni soluzione:
import 'dart:async';
import 'my_library.dart' show CustomStream;
void main() {
Stream stream = new Stream.fromIterable([1, 2]); // doable, since we only import Stream
// async lib
CustomStream customStream = new CustomStream();// doable
}