dart - 在 main 中导入 mydart.dart 文件的正确方法

标签 dart import

在我的 Dart 项目中 projectxyz , 我在 myclass.dart 中声明了一个 Dart 类.在 main.dart ,Android Studio 给出了两种方式,都可以工作,但是我没看懂每种方式的优缺点是什么:
import 'myclass.dart';
或者:
import 'package:projectxyz/myclass.dart';
这两种方法有什么区别?

最佳答案

那要看如何main文件本身被调用(以及它所在的位置)。
我会假设 main.dart图书馆在 lib/ 内目录,否则您将没有导入 myclass.dart 的两个选项.

如果您使用 file: 调用主文件URI,然后是 myclass.dart 的相对导入也将使用 file: 导入URI。由于 Dart 使用导入 URI 来区分不同的库,如果其他人导入 myclass.dart使用 package: URI,那么它将被视为两个不同的库,引入了具有相同名称的不同类。

它曾经是运行 dart lib/main.dart会将其视为 file: URI。 Dart 解析器在这方面变得更加智能,现在它可以识别 lib/ 中的入口点库。目录应该是 package: URI,并将入口点 URI 替换为 package:projectxyz/main.dart .

之后,是否使用myclass.dart都没有区别。或 package:projectxyz/myclass.dart .

关于dart - 在 main 中导入 mydart.dart 文件的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58674499/

相关文章:

android - 通过后退按钮设备在 webview 中回退

dart - 如何获取列表 Flutter 中选中项的索引/键?

python - 一次性导入所有子模块

asp.net-mvc - Dotlesscss @import 语句 : can't find file. 使用 Combres

mysql - 以下 MySQL csv 导入查询术语的含义是什么?

java - 静态导入 - Netbeans 错误

android - 在模块 guava-26.0-android.jar 中发现重复的类 com.google.common.util.concurrent.ListenableFuture

flutter - 在页面焦点事件上出现抖动?

xcode - 您的 Xcode 版本对于您的 iOS 版本来说可能太旧了

javascript - 应该如何配置 VSCode 以支持 Lerna Monorepo?