Import 我通过“导入'”导入另一个文件;模型。省道';`,它可以';不可编辑
我在我的项目中定义了许多dart文件,它们通过Import 我通过“导入'”导入另一个文件;模型。省道';`,它可以';不可编辑,import,dart,Import,Dart,我在我的项目中定义了许多dart文件,它们通过import导入了另一个文件: 控制器.省道 import 'models.dart'; // dart code import 'models.dart'; import 'controller.dart'; // dart code import "app.dart"; main() { // } import "b.dart"; main() { hello(); } hello() { print("hello!"
import
导入了另一个文件:
控制器.省道
import 'models.dart';
// dart code
import 'models.dart';
import 'controller.dart';
// dart code
import "app.dart";
main() {
//
}
import "b.dart";
main() {
hello();
}
hello() { print("hello!"); }
app.dart
import 'models.dart';
// dart code
import 'models.dart';
import 'controller.dart';
// dart code
import "app.dart";
main() {
//
}
import "b.dart";
main() {
hello();
}
hello() { print("hello!"); }
server.dart
import 'models.dart';
// dart code
import 'models.dart';
import 'controller.dart';
// dart code
import "app.dart";
main() {
//
}
import "b.dart";
main() {
hello();
}
hello() { print("hello!"); }
更多dart文件
但当我运行server.dart
时,它会报告错误:
a library which is imported is missing a library directive: models.dart
这是什么意思?我必须将它们全部声明为库吗
从这个角度来看,它说:
It is a compile-time error if the compilation unit found at the
specified URI is not a library declaration.
似乎我们只能导入一个库,而不能导入普通文件
但是如果我定义两个简单的文件
a.dart
import 'models.dart';
// dart code
import 'models.dart';
import 'controller.dart';
// dart code
import "app.dart";
main() {
//
}
import "b.dart";
main() {
hello();
}
hello() { print("hello!"); }
b.dart
import 'models.dart';
// dart code
import 'models.dart';
import 'controller.dart';
// dart code
import "app.dart";
main() {
//
}
import "b.dart";
main() {
hello();
}
hello() { print("hello!"); }
然后运行a.dart:
dart a.dart
它可以打印你好代码>
我感到困惑:(在每个要导入的文件中添加library指令,一切都会正常工作
就你而言:
型号.省道
import 'models.dart';
// dart code
import 'models.dart';
import 'controller.dart';
// dart code
import "app.dart";
main() {
//
}
import "b.dart";
main() {
hello();
}
hello() { print("hello!"); }
库foo.models;
//省道码
控制器.省道
import 'models.dart';
// dart code
import 'models.dart';
import 'controller.dart';
// dart code
import "app.dart";
main() {
//
}
import "b.dart";
main() {
hello();
}
hello() { print("hello!"); }
库foo.controller;
导入“models.dart”;
//省道码
app.dart
import 'models.dart';
// dart code
import 'models.dart';
import 'controller.dart';
// dart code
import "app.dart";
main() {
//
}
import "b.dart";
main() {
hello();
}
hello() { print("hello!"); }
library foo.app;
导入“models.dart”;
导入“controller.dart”;
//省道码
server.dart
import 'models.dart';
// dart code
import 'models.dart';
import 'controller.dart';
// dart code
import "app.dart";
main() {
//
}
import "b.dart";
main() {
hello();
}
hello() { print("hello!"); }
//如果未计划导入,则可以省略名称
库foo.bin.server;
导入“app.dart”;
main(){
//
}
请记住,将由另一个库导入的每个库都需要唯一的名称。
最好的命名方法是在程序包名称前加上前缀
例如
包名为“worker”
lib/worker.dart
import 'models.dart';
// dart code
import 'models.dart';
import 'controller.dart';
// dart code
import "app.dart";
main() {
//
}
import "b.dart";
main() {
hello();
}
hello() { print("hello!"); }
library worker.worker
lib/work.dart
import 'models.dart';
// dart code
import 'models.dart';
import 'controller.dart';
// dart code
import "app.dart";
main() {
//
}
import "b.dart";
main() {
hello();
}
hello() { print("hello!"); }
library worker.work
是的,我刚开始时遇到了完全相同的问题。长话短说:每个要导入的文件都需要库指令,但有时编辑器和VM无法执行此规则。谢谢!我不知道我们可以使用foo.models
表单。