[解決済み] Dartで他のファイルを参照するには?
質問
を使うことができるのは知っています。
library
,
import
そしてさらに
#import
となっていますが、どれが正しいのでしょうか?
私は2つのファイルを持っています。
MainClass.dart
と
Library.Dart
への参照を追加したいのです。
Library.dart
への参照を
MainClass.dart
. どうすればいいのでしょうか?
どのように解決するのですか?
まず最初に、import や library などの前にハッシュ記号を使わないでくださいということを前置きさせてください。これは古い構文で、非推奨とされています。ですから、もはや
#import('...')
正しい構文は
import 'some_file.dart';
とはいえ、現在のファイル内で異なるdartソースファイルにアクセスするために、2つの異なる方法があります。1つ目は
import
を追加することです。これは、現在のファイル(またはより正確には現在のライブラリ)に別のライブラリを持ち込みたい場合に使用します。
通常、ファイルが同じディレクトリ、または現在のディレクトリのサブディレクトリにある場合、このようにインポートします。
import 'lib/library.dart';
しかし、pub パッケージレイアウトを使用している場合、ファイル (特にインポートした他のパッケージ) をインポートするために、いくつかの特別なショートカットリファレンスを使用することもできます。私は ドキュメントを読むことを強くお勧めします。 ほとんどのアプリケーションやライブラリは、これを念頭に置いて設計されているからです。また、ファイル名をすべて小文字にしたり、スペースにアンダースコアを使用したり、ディレクトリのレイアウトなど、最適な命名規則についての提案もあります。
dart ファイルを別のファイルに取り込む際に知っておくべきもう 1 つの重要なことは、dart ファイルを別のファイルに取り込むために
part
と
part of
ディレクティブを使用します。これは、以前は
#source
と呼ばれていましたが、混乱を避けるために変更されました (ハッシュ記号が削除されました)。そのため
part
ディレクティブは、複数のファイルにまたがる単一のライブラリを書きたいときに使用します。例えば
オーサムライブラリ
があり、それが一つのファイルとしては少し大きくなり始めているとします。ライブラリのメインファイルを作成します(mainメソッドと混同しないように)。このファイルは通常、ライブラリ本体と同じ名前になります。
// awesome_library.dart
library awesome_library;
import 'dart:math';
import '...';
// this injects all the content of secret_file.dart
// into this file right here almost as if it was
// here in the first place.
part 'src/secret_file.dart';
// The rest of our file here
// ...
part ディレクティブは、基本的に src/secret_file.dart からすべてを取り出し、ファイルのその部分に挿入します。これによって、巨大な
素晴らしいライブラリ
を複数の小さなファイルに分割し、メンテナンスしやすくします。特に必須というわけではありませんが、このように
part of
ディレクティブを使用すると、エディタがライブラリの一部であることを認識しやすくなります。
// secret_file.dart
part of awesome_library;
// ... Rest of our secret_file code below.
このようにパートファイルを使用する場合、パート(ライブラリのメインファイルでないもの)自身はライブラリ宣言をインポートしたり使用することができないことに注意してください。それらはメインファイルにインポートされたものは何でもインポートしますが、追加のインポートを追加することはできません。
関連
-
[解決済み] DartでSingletonを構築する方法とは?
-
[解決済み】Flutterでビルドしたアプリの表示名を変更するにはどうすればいいですか?
-
[解決済み】Dartで日付をフォーマットする方法とは?
-
[解決済み】Dartの名前付きパラメータと位置付きパラメータの違いは何ですか?
-
[解決済み] Dart enumの "値 "を取得する方法
-
[解決済み] Flutter 継承されたウィジェットを正しく使うには?
-
[解決済み] Dart マルチプルコンストラクタ
-
[解決済み] ステートレスウィジェットクラスのKeyとは何ですか?
-
[解決済み] POSTリクエスト中にCERTIFICATE_VERIFY_FAILEDエラーが発生した場合、どのように解決しますか?
-
[解決済み] flutter - minHeightから始まりmaxHeightまで成長するボックスを作成する正しい方法
最新
-
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" (拡張する)。
-
[解決済み] タイムスタンプの変換
-
[解決済み] Flutterですべての定数を保持するためのベストプラクティスは何ですか?
-
[解決済み] Dart マルチプルコンストラクタ
-
[解決済み] ステートレスウィジェットクラスのKeyとは何ですか?
-
[解決済み] スクロールグローを消すには?
-
[解決済み] Dartでプライベート変数を作成する方法は?
-
[解決済み] Flutter (Dart) アプリにタップでクリップボードにコピーする機能を追加するには?
-
[解決済み] Flutter : Bad state: ストリームは既に聴かれています
-
[解決済み] Flutterのインストールされたバージョンを確認するには?