Flutter:类中初始化变量的差异

Zer*_*ine 6 oop class dart flutter

目前我正在通过 initState 分配所有变量,但是我看到没有必要通过 initState 分配变量,因为我可以直接为变量分配一个值。这些作业的顺序是什么?它们有何不同?为什么以及什么时候你会选择一个而不是另一个?

class Person {
  String name = "John";

  @override
  void initState(){
  ....
  ....
  }
}
Run Code Online (Sandbox Code Playgroud)

对比

class Person {
  String name;
  @override
  void initState(){
    name = "John";
  }
}
Run Code Online (Sandbox Code Playgroud)

Ric*_*eap 2

在您的第一个示例中,分配发生在构造期间。name如果是,您可能需要使用此表格final

在第二个示例中,赋值在调用时发生initState,可以是零次、一次或多次。想必您指的是initState框架State<T>在构建后调用一次的 。