show
경우 :
import 'dart:async' show Stream;
당신이 Stream
이외의 dart:async
에서 다른 클래스를 사용하려고, 그래서 만약 당신이 단지, dart:async
에서 Stream
클래스를 가져 이런 식으로 오류가 발생합니다.
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
경우 :
import 'dart:async' as async;
당신이 dart:async
의 모든 클래스를 가져 async
키워드를 네임 스페이스 이런 식으로. 가져온 라이브러리에 충돌하는 클래스가있을 때 당신이 라이브러리 'my_library이있는 경우
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
은 일반적으로 예를 들어, 사용됩니다.클래스가 Stream
라는 이름의 당신은 또한 다음 dart:async
으로부터 Stream
클래스를 사용하려면 포함 다트 '
import 'dart:async';
import 'my_library.dart';
void main() {
Stream stream = new Stream.fromIterable([1, 2]);
}
이 방법, 우리는이 스트림 클래스는 비동기 라이브러리 또는 자신의 라이브러리에서인지 모른다. 우리는 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
}
이 show
를 들어, 나는 우리가 우리가 단지 특정 클래스가 필요 알고 때를 사용하는 것 같아요. 가져온 라이브러리에 충돌하는 클래스가있는 경우에도 사용할 수 있습니다. 자신의 라이브러리에서 CustomStream
및 Stream
이라는 클래스가 있고 dart:async
을 사용하고 싶다고 가정 해 봅시다.이 경우 자신의 라이브러리에서 CustomStream
만 필요합니다.
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
}
일부 해결 방법 :
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
}