수색…
비고
import 및 library 지시문을 사용하면 모듈 식 공유 가능 코드 기반을 만들 수 있습니다. 모든 다트 응용 프로그램은이다 library 은 도서관 지시어를 사용하지 않는 경우에도. 라이브러리는 패키지를 사용하여 배포 할 수 있습니다. SDK에 포함 된 패키지 관리자 인 pub에 대한 자세한 내용은 Pub Package 및 Asset Manager 를 참조하십시오.
라이브러리 사용
import 를 사용하여 한 라이브러리의 네임 스페이스를 다른 라이브러리의 범위에서 사용하는 방법을 지정합니다.
import 'dart:html';
import 필요한 유일한 인수는 라이브러리를 지정하는 URI입니다. 내장 라이브러리의 경우 URI에 특수한 dart: scheme이 있습니다. 다른 라이브러리의 경우 파일 시스템 경로 또는 package: 구성표를 사용할 수 있습니다. package: scheme은 pub 도구와 같은 패키지 관리자가 제공하는 라이브러리를 지정합니다. 예 :
import 'dart:io';
import 'package:mylib/mylib.dart';
import 'package:utils/utils.dart';
라이브러리 및 가시성
Java와 달리 Dart에는 public , protected 및 private 키워드가 없습니다. 식별자가 밑줄 _ 시작하면 해당 라이브러리에 대해 비공개입니다.
예를 들어 클래스 A가 별도의 라이브러리 파일 (예 : other.dart )에있는 경우 다음과 같습니다.
library other;
class A {
int _private = 0;
testA() {
print('int value: $_private'); // 0
_private = 5;
print('int value: $_private'); // 5
}
}
그런 다음 다음과 같이 기본 앱에 가져옵니다.
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
}
}
예상되는 출력을 얻습니다.
String value: Hello
int value: 0
int value: 5
String value: Hello
라이브러리 접두어 지정
충돌하는 식별자가있는 라이브러리 두 개를 가져 오면 하나 또는 두 라이브러리의 접두사를 지정할 수 있습니다. 예를 들어, library1과 library2에 모두 Element 클래스가있는 경우 다음과 같은 코드가있을 수 있습니다.
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.
라이브러리의 일부만 가져 오기
라이브러리의 일부만 사용하려면 선택적으로 라이브러리를 가져올 수 있습니다. 예 :
// 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;
라이브러리를 지연로드하는 중입니다.
지연로드 (지연로드라고도 함)를 사용하면 필요할 때마다 필요할 때 라이브러리를로드 할 수 있습니다. 라이브러리를 지연로드하려면 먼저 deferred as를 사용하여 라이브러리를 가져와야합니다.
import 'package:deferred/hello.dart' deferred as hello;
라이브러리가 필요할 때 라이브러리의 식별자를 사용하여 loadLibrary ()를 호출하십시오.
greet() async {
await hello.loadLibrary();
hello.printGreeting();
}
앞의 코드에서 await 키워드는 라이브러리가로드 될 때까지 실행을 일시 중지합니다. async 및 await 에 대한 자세한 내용은 비동기 지원에 대한 자세한 예제를 참조하거나 언어 투어의 비동기 지원 부분을 참조하십시오.