【问题标题】:Null aware function invocation operator空感知函数调用运算符
【发布时间】:2017-12-14 18:56:31
【问题描述】:

以同样的方式我们可以拥有

nullableClassInstance?.method(blah)

有办法吗

nullableFunctionInstance?(blah)

也就是说,有没有一个算子检查一个函数实例是否不是null,如果是,就一行调用函数?

【问题讨论】:

标签: dart nullable


【解决方案1】:

使用call method,您可以实现您想要的:

nullableFunctionInstance?.call(blah)

如果你想传递参数,还有apply method

【讨论】:

  • 但是我必须将我的函数包装在一个可调用的类中,还是我误解了这一点?在类型变量上调用“调用”或“应用”,例如'void Function(int)' 抛出编译器错误
【解决方案2】:

如果你有一个函数对象,你可以使用call 方法并将所有参数发送到与调用函数完全相同的函数。在这里,您可以使用 null 感知成员访问运算符。

void myFun(int a , int b){...}

var myVar = myFun ;

调用

函数 myVar 只有在它不为空时才会被调用,如下所示。

myVar?.call( arg1 , arg2 );

申请

如果您的函数是动态的,或者您希望控制在运行时调用哪个函数,您可以使用Functionapply 静态方法,如下所示:

Function.apply(myVar , [arg1 , arg2]);

apply 接受函数和将发送给函数的参数List

阅读更多关于 callapply 的信息:

【讨论】:

    猜你喜欢
    • 2022-12-16
    • 2019-07-22
    • 1970-01-01
    • 2018-12-10
    • 2019-03-06
    • 2011-06-09
    • 2020-09-09
    相关资源
    最近更新 更多