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;然而請注意,雖然這段程式碼不會產生任何診斷資訊,但在執行時會產生堆疊溢位,除非在引用迴圈中的任何變數之前,至少有一個變數被賦值為一個不依賴於其他變數的值。