📜  Flutter 构造函数默认值 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:15:08.885000             🧑  作者: Mango

Flutter 构造函数默认值 - TypeScript

在Flutter中可以通过构造函数给类中的属性赋初始值,但有时候我们也需要给某些属性设置默认值。本文将介绍如何使用构造函数默认值来避免在实例化时给每个属性都赋值的繁琐过程。

1. 构造函数的基础知识

在Flutter中,我们通过定义构造函数来创建类的实例。构造函数的工作是分配对象所需的内存并初始化对象的属性。一个简单的构造函数的定义如下:

class MyClass {
  String name;
  int age;

  MyClass(String name, int age) {
    this.name = name;
    this.age = age;
  }
}

在这个例子中,构造函数 MyClass 接收两个参数 nameage。构造函数通过 this 关键字来引用对象的属性。

构造函数也可以有名字并使用可选参数,例如:

class MyClass {
  String name;
  int age;

  MyClass({String name, int age}) {
    this.name = name ?? 'unknown';
    this.age = age ?? 0;
  }
}

这个构造函数使用了花括号 {} 来表示参数是可选参数。注意 nameage 变量后面的问号 ? 表示这些参数是可选的。

2. 构造函数默认值

在构造函数中使用默认值可以让我们在实例化类时少写一些代码。例如,我们可以为某些属性设置默认值,当在实例化对象时没有指定这些值时默认使用它们。

class MyClass {
  String name;
  int age;
  bool isStudent;

  MyClass({String name = 'unknown', int age = 0, bool isStudent = false}) {
    this.name = name;
    this.age = age;
    this.isStudent = isStudent;
  }
}

void main() {
  MyClass student = MyClass(name: 'Tom', isStudent: true);
  MyClass teacher = MyClass(age: 30, isStudent: false);
  MyClass nobody = MyClass();

  print(student.name);       // output: Tom
  print(student.age);        // output: 0
  print(student.isStudent);  // output: true

  print(teacher.name);       // output: unknown
  print(teacher.age);        // output: 30
  print(teacher.isStudent);  // output: false

  print(nobody.name);        // output: unknown
  print(nobody.age);         // output: 0
  print(nobody.isStudent);   // output: false
}

在这个例子中,我们为构造函数中的 nameageisStudent 设定了默认值,对应着每个属性的类型。

在实例化 student 时,我们不需要给 isStudent 赋值,因为它在构造函数中已经有了默认值。

teacher 的实例中,我们没有为 name 赋值,因此它将使用默认值 unknown

nobody 实例中,我们没有指定任何参数,因此所有属性都将使用默认值。

3. 总结

通过构造函数的默认值,我们可以避免在实例化时给每个属性都赋值的繁琐过程。同时,构造函数默认值的使用也使得代码的可读性更高。

本文介绍了构造函数的基础知识以及如何使用默认值来减少代码量。未来,你可以在你的Flutter项目中使用构造函数默认值来提高代码效率。

完成时间: 30min