测试 Dart 值是否实际上是一个函数?

2024-03-23

是否可以测试一个值是否是一个可以调用的函数?我可以轻松测试 null,但之后我不知道如何确保传入的参数实际上是一个函数?

void myMethod(funcParam)
{
   if (funcParam != null)
   {
       /* How to test if funcParam is actually a function that can be called? */
       funcParam();
   }
}

void myMethod(funcParam) {
    if(funcParam is Function) {
        funcParam();
    }
}

当然,调用funcParams()仅当参数列表匹配时才有效 -is Function不检查这一点。如果涉及到参数,可以使用typedefs https://www.dartlang.org/docs/dart-up-and-running/contents/ch02.html#typedefs以确保这一点。

typedef void MyExpectedFunction(int someInt, String someString);

void myMethod(MyExpectedFunction funcParam, int intParam, String stringParam) {
    if(funcParam is MyExpectedFunction) {
        funcParam(intParam, stringParam);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

测试 Dart 值是否实际上是一个函数? 的相关文章

随机推荐