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 进行授权