😔
[Dart]partとimportの違い
はじめに
こんにちは、Ryo24です。
Dartはpartとimportの2種類でファイルを参照することができます。
本記事は2つの違いと使い分けに関して自分用のメモとして書きました。
partとimportの違いは何?
partとは
partはpart ofとセットで使い、プログラムを分割します。
one.dart
part 'two.dart';
test(); // print 'test'
two.dart
part of 'one.dart';
void test() {
print('test');
}
one.dart(part)の拡張としてtwo.dart(part of)があります。
importとは
importはファイルを参照します。
one.dart
import 'two.dart';
test(); // print 'test'
two.dart
void test() {
print('test');
}
違いは何?
一見、partとimportの違いわかりません...
この2つの違いは、
In Dart, private members are accessible within the same library. With import you import a library and can access only its public members. With part/part of you can split one library into several files and private members are accessible for all code within these files.
引用元: When to use part/part of versus import/export in Dart?
つまり、
-
part: publicとprivateどちらも読み込む -
import: publicしか読み込まない
上記の違いがあり、参照内容が完全に異なることがわかります。
結論
基本的にimportを使いましょう。
partを使うタイミング
freezedをはじめとする、コードを自動生成する実装で使う。
importを使うタイミング
コンポーネントを活用し、機能を追加するときに使う(= 基本的にこいつを使う)。
参考文献
Discussion