Dart-循环导入
在其他语言(如 Python、Go、C# 等)中,循环导入是一个问题,程序无法运行。然而,Dart 似乎解决了这个问题,不同的 Dart 文件可以相互导入。我很好奇 Dart 如何处理这个问题,并想知道是否有任何问题。
我尝试在网上搜索,但找不到任何有意义的信息。
回答
通常,使用多通道编译器的语言允许循环依赖。
其背后的逻辑是编译器多次解析和分析代码,并在每个阶段之后生成中间代码。
关于 Dart,VM 提供了即时 (JIT) 和提前 (AOT) 编译器,如此处所述,它们也适用于中间代码。
我没有玩过 Dart 的编译器,但我猜实现的逻辑是多通道编译器之一