4

我有一个库“foo”,它由一个部分“bar”组成,并导入 dart:io 库。库和部件在 '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 编辑器中,我在“bar.dart”中看到一条警告,说“无法解析 foo”。因此,我在 foo.dart 中声明的任何导入(例如 'dart:io')都不适用于 bar.dart,我的任何 foo.dart 定义也不可用,并且由于 bar.dart 是 foo 的一部分,因此它是不允许导入任何其他库或声明任何其他部分。

我想以这样的方式组织我的代码: * 我带入 foo.dart 的任何导入都可用于 bar.dart(和其他源部分) * 在一个库源部分中创建的库定义可用于其他库源部分。*(显然)bar.dart 中的库定义可用于 foo.dart(这已经按预期工作)

有人可以帮我理解如何完成这些吗?

4

1 回答 1

4

我认为这只是编辑器中的一个错误。你试过运行你的程序吗?它应该工作。

编辑器有时仍然会收到卡住警告,关闭文件或关闭编辑器以获得真正卡住的警告通常会清除它。我会看看我是否找到了错误报告,这样你就可以给它加星标,或者如果它一直发生在你身上,也可以添加一个日志文件。

于 2012-11-04T22:04:34.320 回答