1
// OK, it works!
void global_1() => global_2();
void global_2() => global_1();

void main() {
    // ERROR Local variable 'local_2' can't be referenced before it is declared.
    void local_1() => local_2(); // <=== ERROR
    void local_2() => local_1();
}

编译器说“局部变量在声明之前不能被引用”

但是为什么全局函数可以递归调用而局部函数不能呢?

我需要知道为什么以及针对这种情况的一些好的解决方法。

4

1 回答 1

1

我怀疑这取决于范围。 global_1可以调用global_2,因为它们在应用程序的持续时间内都有效。但是local_2在它被声明之前不存在,也就是在它被使用之后。

于 2020-10-17T19:48:34.207 回答