Null aware function invocation operator

DartNullable

Dart Problem Overview


In the same way we can have

nullableClassInstance?.method(blah)

Is there a way to do

nullableFunctionInstance?(blah)

In other words, is there an operator that checks whether a function instance is not null, if so, invoke the function all in one line?

Dart Solutions


Solution 1 - Dart

Using the call method, you can achieve what you want with:

nullableFunctionInstance?.call(blah)

There's also the apply method if you want to pass arguments.

Solution 2 - Dart

If you have a Function Object , you can use the call method and send all the parameters to that which works exactly as calling the function. Here , you can use the null aware member access operator.

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

var myVar = myFun ;

call

The function myVar will only get called if its not null as shown below.

myVar?.call( arg1 , arg2 );

apply

If your function is dynamic or you wish to control which function is being called at run time , you can use the apply static method of Function like so :

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

apply takes the function and a List of parameters that will be sent to the function.

Read more about call and apply :

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionxsterView Question on Stackoverflow
Solution 1 - DartGanymedeView Answer on Stackoverflow
Solution 2 - DartNatesh bhatView Answer on Stackoverflow