library
、、import
さらにはを使用できることは知っていますが#import
、どちらが正しいですか?
に2つのファイルがMainClass.dart
あり、への参照を追加しLibrary.Dart
たいと思います。どうやってやるの?Library.dart
MainClass.dart
library
、、import
さらにはを使用できることは知っていますが#import
、どちらが正しいですか?
に2つのファイルがMainClass.dart
あり、への参照を追加しLibrary.Dart
たいと思います。どうやってやるの?Library.dart
MainClass.dart
まず、インポートやライブラリなどの前にハッシュ記号を使用しないでくださいと言って、この前置きをさせてください。これは非推奨になっている古い構文です。したがって、使用する必要はありません#import('...')
。正しい構文は次のとおりです。
import 'some_file.dart';
とはいえ、現在のファイル内のさまざまなdartソースファイルにアクセスするためにできることは2つあります。1つ目はimport
ファイルです。これは、現在のファイル(より正確には現在のライブラリ)に別のライブラリを追加する場合などに使用します。
通常、ファイルが同じディレクトリ、または現在のディレクトリのサブディレクトリにある場合は、次のようにインポートします。
import 'lib/library.dart';
ただし、pubパッケージレイアウトを使用している場合は、いくつかの特別なショートカット参照を使用してファイルをインポートすることもできます(特に、インポートした他のパッケージから)。ほとんどのアプリケーションとライブラリはこれを念頭に置いて設計されているため、パブサイトのドキュメントを読むことを強くお勧めします。また、すべて小文字のファイル名、スペースにアンダースコアを使用する、ディレクトリレイアウトなど、最適な命名規則に関する提案もあります。
dartファイルを別のファイルに取り込むことについて知っておくべきもう1つの重要なことは、part
andpart of
ディレクティブを使用できることです。これは以前は呼び出されて#source
いましたが、混乱を減らすために変更されました(ハッシュ記号が削除されました)。このpart
ディレクティブは、複数のファイルにまたがる単一のライブラリを作成する場合に使用されます。たとえば、1つのファイルに対して少し大きくなり始めているAwesomeLibraryがあるとします。ライブラリのメインファイルを作成します(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からすべてを取得し、それをファイルのその部分に挿入します。これにより、巨大なAwesome Libraryを、保守が容易な複数の小さなファイルに分割できます。特に必須ではありませんがpart of
、secret_file.dartのディレクティブを使用して、それがライブラリの「一部」であることをエディターが認識できるようにすることが役立ちます。
// secret_file.dart
part of awesome_library;
// ... Rest of our secret_file code below.
このようなパーツファイルを使用する場合、パーツ(つまり、ライブラリのメインファイルではないすべてのもの)は、ライブラリ宣言自体をインポートまたは使用できないことに注意してください。メインファイルにインポートされたものはすべてインポートしますが、追加のインポートを追加することはできません。
filename.dart
独自に作成したライブラリのインポート:ライブラリの名前ではなく、をインポートします。したがって、ライブラリの名前が次の場合myLib
:ファイルに保存されているsomeDartFile.dart
場合:次のことを行う必要があります
import 'someDartFile.dart';
WindowsでK:\ SomeDir \ someFile.dartにライブラリがある場合は、次のように記述する必要があります。
import '/K:/SomeDir/someFile.dart';
例:
import 'LibraryFile.dart'; //importing myLib
void main(){
//a class from myLib in the LibraryFile.dart file
var some = new SomeClassFromMyLibrary();
}
LibraryFile.dartのmyLib:
library myLibrary;
import 'dart:math';
class SomeClassFromMyLibrary{
String _str = "this is some private String only to myLibrary";
String pubStr = "created instances of this class can access";
}
ここに完全な例があります。
//TestLib.dart
import 'LibFile.dart'; //SomeLibrary
void main() {
print("Hello, World!");
LibFile l = new LibFile();
print(l.publicString);//public
print(l.getPrivateString);//private
print(l.getMagicNumber); //42
}
//LibFile.dart
library SomeLibrary;
part 'LibFile2.dart';
class LibFile {
String _privateString = "private";
String publicString = "public";
String get getPrivateString => _privateString;
int get getMagicNumber => new LibFile2().number;
}
//LibFile2.dart
part of SomeLibrary;
class LibFile2 {
int number = 42;
}
私は非常に遅く答えていますが、答えは新しい開発者を助けるかもしれません。
dartパッケージ(アプリケーション/ライブラリ)では常にpubspec.yamlファイルを使用してください。
pub getコマンドを実行すると、ローカルライブラリが.packagesファイルの依存関係リストに追加されます。
私が次のプロジェクト構造を持っていると考えてください。
main.dartファイルのgreeting.dartの内容を参照するには、次のようにライブラリを追加する必要があります。
import 'package:my_project_name/greeting.dart'
インポートすると、main.dartファイルのgreeting.dartファイルのコンテンツを使用できます。注:「lib」ディレクトリが欠落していることがわかるため、実際のパスは使用していません。
まず、それがあなたが言及した名前でありpubspec.yaml
、インポートしたいファイルがまったく同じ名前を共有していることを確認してください
例:
pubspec.yaml
name: flutter_wordpress_app
description: flutter wordpress app
...
....
// dirOne/dirTwo/greeting.dart
class FavArticleBloc {
// Your code goes here
}
import 'package:flutter_wordpress_app/dirOne/dirTwo/greeting.dart'
void main(){
var some = new FavArticleBloc();
}
ただし、
以下のようmain.dart
に指定する必要はありません
。import 'package:flutter_wordpress_app
import 'dirOne/dirTwo/greeting.dart