part
Dart でライブラリを使用する場合の/part of
とimport
/の違いが完全には理解できませんexport
。例:
one.dart:
library one;
part "two.dart";
Class One {
};
そして
two.dart:
part of one;
import 'somefile.dart';
Class Two {
}
対
library one;
import 'two.dart';
Class One {
}
そして
library two;
import 'somefile.dart';
export 'somefile.dart';
Class Two {
}
どちらのシナリオも同じことを行うようです。ではなくpart
とを使用する方が有利なのはどのような場合ですか? また、は機能せず、 とが機能するシナリオはありますか?part of
import
import
part
part of
ベストアンサー1
2018/03更新
part
また、part of
最近ではコード生成シナリオで(非推奨のトランスフォーマーの代わりに)ますます使用されるようになっており、すぐになくなる可能性は低いです。
built_value
、、およびその他多くのパッケージがjson_serializable
これに依存しています。
推奨されないのは、1 つのライブラリ ファイルと、その他のすべてのファイルをそのライブラリの一部にすることで、パッケージのすべてのファイルを 1 つのライブラリにまとめるパターンのみです。
オリジナル
Dart では、プライベート メンバーは同じライブラリ内でアクセスできます。 をimport
使用すると、ライブラリをインポートし、そのパブリック メンバーにのみアクセスできます。 part
/ を使用するとpart of
、1 つのライブラリを複数のファイルに分割でき、これらのファイル内のすべてのコードからプライベート メンバーにアクセスできます。
上記の更新の以下の段落の説明を参照してください
part
/ の使用はpart of
推奨されておらず、Dart チームはそれを削除することを検討しています。彼らは "friend" のようなものを導入すると思います (dart-lang.js の最新版は http://github.com/dart-lang/sdk/issues/22841 です。part
) では、 / が廃止される前に、2 つのライブラリが互いのプライベート メンバーにアクセスできる代替手段が提供されますpart of
(将来の Dart バージョンで可能になるかもしれません)。