function - 在 Flutter/Dart 中,有什么方法可以直接调用作为可选参数传递的函数,同时还可以防止空值错误?
问题描述
从这个答案中,我了解到我可以在调用作为可选参数传递的函数之前检查空值:
myFunction ({ Function onFocusChange }) {
if(onFocusChange != null) {
onFocusChange(boolValue)
}
}
我也明白 Flutter 中有一个像 Swift 和 Kotlin 这样的可选概念,使用“?” 运营商,尽管他们都有自己的怪癖。
我要问的是是否有任何方法可以调用可选函数并在它为空时静默失败,就像在 Swift 中一样:
onFocusChange?(boolValue);
我尝试在 Flutter 上添加问号,它立即尝试将“onFocusChange”评估为布尔值(三元运算符)。
解决方案
我想知道同样的事情。我尝试了建议的onFocusChange??(boolValue);
,但这对我不起作用。(也许是由于版本差异?)我最终做的是(onFocusChange ?? () {})();
,这对我来说可以保持在一条线上。仍然没有我希望的简单性,但我更喜欢它在美学上而不是多行代码检查null
。不知道 dart 是否足够聪明,不会在onFocusChange
is时实际调用空函数null
,或者如果这种事情分散在整个代码中,它可能会对性能造成多大影响(如果有的话)。
推荐阅读
- python - 编码和解码图片pytorch
- c# - 出现超时错误 - 增加绑定时的发送超时值
- git - Git没有打开difftool?
- php - 使用 GET 将参数传递给 PHP 函数
- angular - 使用lazyLoadmodules 错误的redirectTo
- reactjs - 如何仅将一种商店类型传递给组件(当商店是联合类型时)
- c++ - 如何从指向指针数组的指针中删除对象?
- html - 用于删除提交按钮中的填充(边距?)的 CSS
- module - Rust:无法从 2 个文件中导入 1 个模块
- docker - Docker CE 安装错误 - Ubuntu 16.04 ppc64le (IBM Power)