4

パーツ「bar」で構成され、dart:ioライブラリをインポートするライブラリ「foo」があります。ライブラリとパーツは、「foo.dart」で次のように宣言されています。

// in foo.dart

library foo;
import 'dart:io';
part "bar.dart"; // resolves

class Foo {
  Bar bar = new Bar(); // resolves
  HttpServer server = new HttpServer(); // resolves
}

「foo.dart」と「bar.dart」は同じディレクトリにあります。

'bar.dart'は、次のようにライブラリfooを参照します。

// in bar.dart

part of foo; // does not resolve

class Bar {
  Foo foo = new Foo(); // does not resolve
  HttpServer server = new HttpServer // does not resolve
}

しかし、Dart Editorでは、「bar.dart」に「fooを解決できません」という警告が表示されます。したがって、foo.dartで宣言したインポート('dart:io'など)はbar.dartで使用できず、foo.dartの定義も使用できません。また、bar.dartはfooの一部であるため、次のようになります。それ以上のライブラリをインポートしたり、それ以上の部分を宣言したりすることは許可されていません。

次のようにコードを整理したいと思います。*foo.dartにインポートしてbar.dart(および他のソースパーツ)で使用できるようにする*1つのライブラリソースパーツで作成されたライブラリ定義を他のライブラリソースで使用できる部品。*(明らかに)bar.dartで作成されたライブラリ定義はfoo.dartで利用できます(これはすでに期待どおりに機能します)

誰かが私がこれらを達成する方法を理解するのを手伝ってくれますか?

4

1 に答える 1

4

これはエディターの単なるバグだと思います。プログラムを実行してみましたか?動作するはずです。

エディターはまだ時々スタック警告を受け取り、ファイルを閉じるか、本当にスタックしているものについてはエディターを閉じると、通常はそれをクリアします。バグレポートが見つかったかどうかを確認して、スターを付けたり、ログファイルを追加したりできるようにします。

于 2012-11-04T22:04:34.320 に答える