Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Import 我通过“导入'”导入另一个文件;模型。省道';`,它可以';不可编辑_Import_Dart - Fatal编程技术网

Import 我通过“导入'”导入另一个文件;模型。省道';`,它可以';不可编辑

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!"

我在我的项目中定义了许多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!"); }
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
表单。