如何在 Dart 中对简单函数进行空值检查?

Pam*_*ela 2 dart flutter

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

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

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

void fastDrive() {
  print('Driving fast');
}
Run Code Online (Sandbox Code Playgroud)

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

我怎样才能对这个进行空检查?

ike*_*fah 6

可以使用以下方法完成.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');
}
Run Code Online (Sandbox Code Playgroud)

call还接受带参数的函数

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');
}
Run Code Online (Sandbox Code Playgroud)