1. ホーム
  2. dart

[解決済み] Dartで他のファイルを参照するには?

2023-03-13 03:23:59

質問

を使うことができるのは知っています。 library , import そしてさらに #import となっていますが、どれが正しいのでしょうか?

私は2つのファイルを持っています。 MainClass.dartLibrary.Dart への参照を追加したいのです。 Library.dart への参照を MainClass.dart . どうすればいいのでしょうか?

どのように解決するのですか?

まず最初に、import や library などの前にハッシュ記号を使わないでくださいということを前置きさせてください。これは古い構文で、非推奨とされています。ですから、もはや #import('...') 正しい構文は

import 'some_file.dart';

とはいえ、現在のファイル内で異なるdartソースファイルにアクセスするために、2つの異なる方法があります。1つ目は import を追加することです。これは、現在のファイル(またはより正確には現在のライブラリ)に別のライブラリを持ち込みたい場合に使用します。

通常、ファイルが同じディレクトリ、または現在のディレクトリのサブディレクトリにある場合、このようにインポートします。

import 'lib/library.dart';

しかし、pub パッケージレイアウトを使用している場合、ファイル (特にインポートした他のパッケージ) をインポートするために、いくつかの特別なショートカットリファレンスを使用することもできます。私は ドキュメントを読むことを強くお勧めします。 ほとんどのアプリケーションやライブラリは、これを念頭に置いて設計されているからです。また、ファイル名をすべて小文字にしたり、スペースにアンダースコアを使用したり、ディレクトリのレイアウトなど、最適な命名規則についての提案もあります。

dart ファイルを別のファイルに取り込む際に知っておくべきもう 1 つの重要なことは、dart ファイルを別のファイルに取り込むために partpart 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.

このようにパートファイルを使用する場合、パート(ライブラリのメインファイルでないもの)自身はライブラリ宣言をインポートしたり使用することができないことに注意してください。それらはメインファイルにインポートされたものは何でもインポートしますが、追加のインポートを追加することはできません。

ライブラリの詳細については、このリンクを参照してください。