如何判断变量是否在dart中"可调用"?

Dig*_*Fiz 4 dart

我正在做一个dart的小实验,我找不到一种方法来确定变量是否是"可调用的"而没有显式检查每个类型(String,int,bool,ect)并猜测它是否可调用如果它是无那些.我还尝试了一下try/catch,这对我来说似乎是错的.

什么是正确的方式或至少是做出决定的最佳方式?

这是我做的一个例子来展示我想要实现的目标:https: //gist.github.com/digitalfiz/3f431dc07ca761389062

JAr*_*Are 7

class Callable{
  call() => 42;
}
void main() {
  var foo = ()=>42;
  var bar = new Callable();
  var baz = 42;
  bool isCallable(v) => v is Function;
  print(isCallable(foo)); //true
  print(isCallable(bar)); //true
  print(isCallable(baz)); //false
}
Run Code Online (Sandbox Code Playgroud)

  • 这测试对象是否可以任何方式调用。如果想知道是否可以使用零参数调用它,可以执行以下操作:`typedef NullaryFunction(); bool isCallable(o)=> o是NullaryFunction;`。 (2认同)