サーチ…
備考
importおよびlibraryディレクティブは、モジュールベースで共有可能なコードベースを作成するのに役立ちます。すべてのダーツアプリがあるlibrary 、それはライブラリディレクティブを使用していない場合でも、。ライブラリはパッケージを使用して配布できます。 pubについては、 PubパッケージとAsset Manager( SDKに含まれているパッケージマネージャ)を参照してください。
ライブラリの使用
importを使用して、あるライブラリの名前空間を別のライブラリのスコープでどのように使用するかを指定します。
import 'dart:html';
import必要な引数は、ライブラリを指定するURIだけです。組み込みライブラリの場合、URIには特別なdart: schemeがあります。他のライブラリでは、ファイルシステムパスまたはpackage:スキームを使用できます。 package: schemeは、パブツールなどのパッケージマネージャによって提供されるライブラリを指定します。例えば:
import 'dart:io';
import 'package:mylib/mylib.dart';
import 'package:utils/utils.dart';
ライブラリと可視性
Javaとは異なり、Dartにはキーワードpublic 、 protected 、およびprivateはありません。識別子がアンダースコア_で始まる場合、それはそのライブラリに対してプライベートなものです。
たとえば、別のライブラリファイル(たとえば、 other.dart )にクラスAがある場合、次のようになります。
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
ライブラリ接頭辞の指定
競合する識別子を持つ2つのライブラリーをインポートする場合は、一方または両方のライブラリーの接頭部を指定することができます。たとえば、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詳細については、ここで非同期サポートの例を参照するか、言語ツアーの非同期サポートの部分を参照してください。