[解決済み] Dartでimport/exportとpart/part ofを使い分けるとしたら?
質問
の違いがよくわかりません。
part
/
part of
そして
import
/
export
は、Dartでライブラリを使用するときに使用します。 例えば
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
になるのでしょうか?
どのように解決するのですか?
アップデート 2018/03
part
そして
part of
は最近、コード生成のシナリオでますます多く使われるようになり (非推奨のトランスフォーマーの代わりに)、すぐになくなることはないでしょう。
のようなパッケージは
built_value
,
json_serializable
など、多くのものがこれに依存しています。
ディスカレッジは、1つのライブラリファイルを持ち、他のすべてのファイルがそのライブラリの一部であることによって、パッケージのすべてのファイルが1つのライブラリに結びつけられるパタンだけです。
オリジナル
Dartでは、プライベートメンバーは同じライブラリ内でアクセス可能です。 とのことです。
import
で、ライブラリをインポートすると、そのライブラリのパブリックメンバにのみアクセスすることができます。また
part
/
part of
のようにすれば、1つのライブラリを複数のファイルに分割し、それらのファイル内の全てのコードからプライベートメンバーにアクセスすることができます。
上記のアップデートにおける以下の段落の説明を参照してください。
使用方法
part
/
part of
は推奨されず、Dart チームはこれを取り除くことを検討しています。私は、彼らが "friend" のようなものを導入することを想定しています (
https://github.com/dart-lang/sdk/issues/22841
) のようなものを導入し、2 つのライブラリが互いのプライベート メンバにアクセスできるようにすることを想定しています。
part
/
part of
を追加しました (将来の Dart バージョンで追加されるかもしれません)。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] "extends" 対 "implements" 対 "with" (拡張する)。
-
[解決済み] DartでListを等しく比較するにはどうしたらいいですか?
-
[解決済み] ステートレスウィジェットクラスのKeyとは何ですか?
-
[解決済み] Flutter (Dart) アプリにタップでクリップボードにコピーする機能を追加するには?
-
[解決済み] Dartの "var "型と "dynamic "型の違い?
-
[解決済み] Flutterのインストールされたバージョンを確認するには?
-
[解決済み] Dartで他のファイルを参照するには?
-
[解決済み] Dartで、再発する関数を実行するには?
-
[解決済み] ダーツリスト最小値/最大値
-
[解決済み] Flutterで何かを15度回転させるには?