7

我正在写一个飞镖文件:

import 'something.dart'

part of my_lib;

class A{
    //...
}

我已经尝试过将importandpart of指令颠倒过来,但它仍然无法工作,你能不能没有一个类文件作为库的一部分并且有导入?

4

3 回答 3

23

您所有的导入都应该放在定义库的文件中。

图书馆:

library my_lib;

import 'something.dart';

part 'a.dart';

class MyLib {
  //...
}

飞镖

part of my_lib;

class A {
  //...
}

由于 a.dart 是 my_lib 的一部分,它可以访问 my_lib 导入的任何文件。

于 2013-06-21T15:09:52.710 回答
1

Pixel Elephanr 的回答是正确的,但我建议使用 part-of 指令的替代语法

my_file.dart(库主文件):

//This now is optional:
//library my_lib; 

import 'something.dart';

part 'a.dart';

class MyLib {
  //...
}

a.dart(同一个库的一部分;因此您可以在其中引用 my_file.dart 中导入的元素)

//Instead of this (whitout quotes, and referencing the library name):
//part of my_lib;

//use this (whit quotes, and referencing the library file path): 
part of 'my_file.dart'

class A {
  //...
}

在 Doc 中您可以找到这两种语法,但仅使用带引号的部分语法(指向文件路径),您可以省略library 主文件中的 library 指令;或者,如果由于其他原因(将文档和注释放在库级别)仍然需要 library 指令,至少您不会被迫在多个文件中保持库名称同步,这在重构的情况下很无聊。

于 2021-04-09T15:21:43.707 回答
0

如果您在通过拖放移动文件时在 IntelliJ IDEA 或 Android Studio 中遇到此问题,请在左侧的项目窗格中切换到“项目源”,然后移动(拖放)。当我在使用颤振时遇到这个问题时,这对我有用。

于 2021-09-19T14:02:26.000 回答