不知何故,我发现每个函数都有call()方法. 使用此方法,我可以将if (callback != null) callback()更改为callback?.call().

所以我试着go 找call()的实现和文档,但是找不到,只是内置的方法吗?这个方法的实现是什么?它内部会调用Function.apply()吗?

推荐答案

所有DART functions(具有函数类型而不是类/接口类型的对象)都有call方法.

call方法与函数本身具有相同的函数类型,在调用它时,它的行为完全相同.你甚至可以说,调用函数is隐式地调用它的call方法.

其他省道对象也可能有call方法.这只是接口类型的普通方法,但如果类C有一个类似int call(int x) => ...的调用方法,而c有类型C,那么c(e2, e3)也会转换为c.call(e2, e3).它必须是一个callmethod,而不仅仅是一个返回函数的callgetter.

Dart相关问答推荐

如何映射作为DART中其他模型基础的复杂模型

如何在 Dart 游戏中重复听按键?

如何在 Flutter 中向 AnimationController 添加 Curves 类动画?

你如何在 Polymer 中调度和监听自定义事件?

在Flutter中解析 JSON 到 Map

如何将圆形边框设置为flutter上的MaterialButton?

如何在Flatter中导入intl库?

如何在Dart中按布尔对列表进行排序

在小部件构建期间,如何在Flutter中导航?

判断Dart中是否提供了可选参数

如何在 flutter 中对json进行字符串化

如何缩小从 Dart 编辑器编译的 JavaScript 代码?

Dart 中使用的const关键字是什么?

Dart:将map转换为查询字符串

比较在 Dart 中创建单例的方法

Dart 中的多行字符串

如何在 Dart 中执行相当于 setTimeout + clearTimeout 的操作?

是否可以在 Dart 中的一行上初始化列表?

dart列表最小值/最大值

如何在 Dart 中生成唯一 id