수색…


비고

importlibrary 지시문을 사용하면 모듈 식 공유 가능 코드 기반을 만들 수 있습니다. 모든 다트 응용 프로그램은이다 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 키워드는 라이브러리가로드 될 때까지 실행을 일시 중지합니다. asyncawait 에 대한 자세한 내용은 비동기 지원에 대한 자세한 예제를 참조하거나 언어 투어의 비동기 지원 부분을 ​​참조하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow