Flutter 如何在Dart中检查简单函数的空值?

Flutter 如何在Dart中检查简单函数的空值?,flutter,dart,Flutter,Dart,该错误表示,值可以为null的表达式必须先检查null,然后才能取消引用 如何进行空值检查?可以使用.call() 调用也接受带参数的函数 void main() { Car myCar = Car(drive: slowDrive); myCar.drive?.call(); } class Car { Car({this.drive}); Function? drive; } void slowDrive() { print('Driving slowly'); }

该错误表示,值可以为null的表达式必须先检查null,然后才能取消引用


如何进行空值检查?

可以使用
.call()

调用
也接受带参数的函数

void main() {
  Car myCar = Car(drive: slowDrive);
  myCar.drive?.call();
}

class Car {
  Car({this.drive});
  Function? drive;
}

void slowDrive() {
  print('Driving slowly');
}

void fastDrive() {
  print('Driving fast');
}

可以使用
.call()

调用
也接受带参数的函数

void main() {
  Car myCar = Car(drive: slowDrive);
  myCar.drive?.call();
}

class Car {
  Car({this.drive});
  Function? drive;
}

void slowDrive() {
  print('Driving slowly');
}

void fastDrive() {
  print('Driving fast');
}

您可以将参数
drive
设置为必需:

void main() {
  Car myCar = Car(drive: slowDrive);
  myCar.drive?.call(5);
}

class Car {
  Car({this.drive});
  Function(int)? drive;
}

void slowDrive(int a) {
  print('Driving slowly');
}

void fastDrive(int a) {
  print('Driving fast');
}
为了保证您永远不会看到具有非null类型的null参数,类型检查器要求所有可选参数都具有null类型或默认值。如果您想要一个具有可为空类型且没有默认值的命名参数,该怎么办?这意味着您希望要求调用方始终传递它。换句话说,您需要一个命名但不是可选的参数


您可以将参数
驱动器设置为必需:

void main() {
  Car myCar = Car(drive: slowDrive);
  myCar.drive?.call(5);
}

class Car {
  Car({this.drive});
  Function(int)? drive;
}

void slowDrive(int a) {
  print('Driving slowly');
}

void fastDrive(int a) {
  print('Driving fast');
}
为了保证您永远不会看到具有非null类型的null参数,类型检查器要求所有可选参数都具有null类型或默认值。如果您想要一个具有可为空类型且没有默认值的命名参数,该怎么办?这意味着您希望要求调用方始终传递它。换句话说,您需要一个命名但不是可选的参数