gpt4 book ai didi

actionscript-3 - 在 AS3 中在运行时(反射)检查匿名函数签名

转载 作者:行者123 更新时间:2023-12-04 04:25:55 24 4
gpt4 key购买 nike

有没有办法在运行时查看 ActionScript 3 中匿名函数的签名?

我想验证 Function作为参数传入其他函数的对象,并确保它们接受正确数量的参数(具有正确的类型)并返回正确类型的值。
flash.utils.describeType()似乎没有为匿名函数返回此信息。

最佳答案

看起来运行时不允许您反射(reflect)匿名函数,这是一种耻辱。

匿名函数(可能根据定义)标记为 dynamic .如果将不兼容的类型传递给匿名函数,则不会引发错误。任何类型的不匹配都会尽可能地被默默地强制转换。传递类似 "minotaur" 的内容作为 uint参数将产生 0 (零),例如。

如果你真的想过度设计它,你可以得到所有的面向对象。您可以声明一个包含适当函数签名的接口(interface),并接受实现该接口(interface)的对象,而不是接受匿名函数。

public interface IFancyCallback {
public function fancyFunction(frog:Frog, princess:Girl):UsefulReturnType;
}

你的函数只需要打包在一个对象中:
public class ConcreteCallback implements IFancyCallback {
public function fancyFunction(frog:Frog, princess:Girl):UsefulReturnType {
princess.kiss(frog);
return new UsefulReturnType("jabberwocky");
}
}

可能会产生大量代码开销。取决于您打算拥有多少回调,谁将进行回调,以及如果 anon 函数的签名不正确会有多严重。

你能分享更多关于你试图解决的问题吗?

关于actionscript-3 - 在 AS3 中在运行时(反射)检查匿名函数签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/333841/

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