空感知函数调用运算符

Null aware function invocation operator

以同样的方式我们可以

nullableClassInstance?.method(blah)

有什么办法吗

nullableFunctionInstance?(blah)

换句话说,是否有一个运算符检查一个函数实例是否不是null,如果是,则在一行中调用所有函数?

使用 call method,您可以通过以下方式实现您想要的:

nullableFunctionInstance?.call(blah)

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

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

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

var myVar = myFun ;

致电

仅当函数 myVar 不为 null 时才会被调用,如下所示。

myVar?.call( arg1 , arg2 );

申请

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

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

apply 接受函数和 List 将被发送到函数的参数。

阅读更多关于 call and apply 的信息: