dart导入和同一文件中的部分指令

时间:2013-06-21 14:54:03

标签: import dart

我正在写一个飞镖文件:

import 'something.dart'

part of my_lib;

class A{
    //...
}

我已尝试将此importpart of指令反转,但它仍然无效,您是否可以将类文件作为库的一部分并具有导入?

2 个答案:

答案 0 :(得分:6)

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

库:

library my_lib;

import 'something.dart';

part 'a.dart';

class MyLib {
  //...
}

a.dart

part of my_lib;

class A {
  //...
}

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

答案 1 :(得分:0)

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 {
  //...
}

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