Dart - 循环导入

Dart - Circular imports

在其他语言(如 Python、Go、C# 等)中,循环导入是一个问题,而程序不会 运行。然而,Dart 似乎解决了这个问题,不同的 Dart 文件可以相互导入。我很好奇 Dart 如何处理这个问题,并想知道它是否有任何问题。

我尝试在线搜索,但找不到任何有意义的信息。

通常,使用 multi-pass compiler 的语言允许循环依赖。

其背后的逻辑是编译器对代码进行多次解析分析,在每个阶段之后生成中间代码。

关于 Dart,VM 提供即时 (JIT) 和提前 (AOT) 编译器 explained here,它们也可以处理中间代码。
我对 Dart 的编译器玩得不多,但我猜实现的逻辑是多通道编译器之一