gpt4 book ai didi

dart - dart 中 call() 的实现是什么?

转载 作者:行者123 更新时间:2023-12-03 02:44:38 25 4
gpt4 key购买 nike

我不知何故找到了call()方法适用于每个功能。
使用这种方法,我可以更改我的 if (callback != null) callback()callback?.call() .

于是我试图找到call()的实现和文档,但我做不到。它只是内置方法吗?这种方法的实现将是什么? Function.apply()里面会叫吗?

最佳答案

所有 Dart 函数(具有函数类型而不是类/接口(interface)类型的对象)都有 call方法。
call方法与函数本身具有相同的函数类型,并且在调用它时行为完全相同。你甚至可以说调用一个函数就是在隐式调用它的call。方法。
而且,并非巧合,规范实际上确实这样说:如果您编写函数调用 e1(e2, e3) , 然后编译器检查 e1call方法,如果是,则将其转换为方法调用 e1.call(e2, e3) .

其他 Dart 对象可能有 call方法也是。这只是接口(interface)类型的普通方法,但如果类 C有一个像 int call(int x) => ... 这样的调用方法, 和 c有类型 C ,然后 c(e2, e3)也转换为 c.call(e2, e3) .它必须是 call方法,而不仅仅是 call getter 返回一个函数。

关于dart - dart 中 call() 的实现是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58833369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com