top_level_cycle
类型 '{0}' 无法推断,因为它通过循环依赖于自身:{1}。
描述
#当顶级变量没有类型注解,且该变量的初始化表达式直接或间接引用了该变量自身时,分析器会生成此诊断信息。
示例
#以下代码会生成此诊断信息,因为变量 x
和 y
互相定义,且都没有显式类型,因此无法推断出对方的类型
dart
var x = y;
var y = x;
常见修复方法
#如果两个变量不需要互相引用,则打破循环
dart
var x = 0;
var y = x;
如果两个变量需要互相引用,则至少给其中一个变量一个显式类型
dart
int x = y;
var y = x;
然而请注意,虽然这段代码不会产生任何诊断信息,但在运行时会产生堆栈溢出,除非在引用循环中的任何变量之前,至少有一个变量被赋值为一个不依赖于其他变量的值。