gpt4 book ai didi

dart - 关于导入本地文件的Dart风格建议

转载 作者:行者123 更新时间:2023-12-03 03:26:08 25 4
gpt4 key购买 nike

有什么建议如何导入本地文件。就我而言,我有2个选择:

  • import'package:workshop / feed / item.dart';
  • import'item.dart';

  • 在指南 Effective Dart: Style或Google搜索上,我都没有找到任何内容。

    最佳答案

    至少有两个不同的建议,具体取决于您问谁。
    无论哪种作品,我个人都推荐后者,更短的变体。
    这样就足够了,并且避免了将软件包名称硬编码到每个文件中的问题。如果您想重命名软件包,那将会很麻烦。

    有一个问题使某些人推荐前一种格式。
    如果您使用非package: URI导入软件包库,则说在bin/test/目录中有一个文件,则可以像这样进行导入:

    import "../lib/mylib.dart";

    那么现在可以使用两个不同的URI导入该库:
  • package:mypkg/mylib.dart
  • file:///somewhere/mypkg/lib/mylib.dart

  • 由于Dart通过导入URI识别库,因此这两个导入将被视为不同的库,每个库都有自己的全局变量和静态变量,而这些变量恰好具有相同的源代码。这是一个烦人的问题,可能很难调试。如果在各处都使用长 package:...导入,那么至少该问题仅限于您导入的第一个库。如果使用相对导入 import "src/helper.dart";,那么该库现在也将存在两个版本:
  • package:mypkg/src/helper.dart
  • file:///somewhere/mypkg/lib/src/helper.dart

  • 真正的问题是第一次导入,该导入在路径中包含 /lib/。您绝对不能导入。对所有导入使用 package: URI可以减少问题,但不能消除。

    我建议使用相对路径,并确保在任何导入路径中都不要包含 /lib/。 pub软件包的 /lib/目录中的库是软件包库,应使用 package: URI进行引用。如果这样做,则将相对于程序包URI解析相对URI,然后再次将其作为程序包URI,一切都很好。

    关于dart - 关于导入本地文件的Dart风格建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56340162/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com