文章

call-空安全调用操作符

call-空安全调用操作符

call-空安全调用操作符

call-空安全调用操作符

?.call() 是 Dart 中的空安全调用操作符,具体作用:

作用:

  • 安全调用:只有当对象不为 null 时才会调用方法
  • 避免空指针异常:如果对象为 null,整个表达式返回 null,不会抛出异常

用法对比:

传统写法(不安全):

widget.handleConfirmOrg(params); // 如果 handleConfirmOrg 为 null 会崩溃

空安全写法:

widget.handleConfirmOrg?.call(params); // 如果为 null 则什么都不做,不会崩溃

等价于:

1
2
3
if (widget.handleConfirmOrg != null) {
  widget.handleConfirmOrg(params);
}

在你的代码中的应用:

1
2
3
// 回调可能为 null,所以使用安全调用
widget.handleConfirmOrg?.call(params);
widget.handleConfirmBp?.call(slopeId.toString());

为什么需要:

  • 父组件可能没有传递这些回调函数
  • 避免因为回调为 null 导致应用崩溃
  • 提高代码的健壮性

这就是 Dart 空安全特性的重要用法,确保在可能为 null 的情况下安全地调用方法。

本文由作者按照 CC BY 4.0 进行授权