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?
Null-aware operators are used in almost every programming language to check whether the given variable value is Null. The keyword for Null in the programming language Dart is null. Null means a variable which has no values assign ever and the variable is initialized with nothing like.
The three null-aware operators that Dart provides are ?. , ?? , and ??= .
Use the fallback operator to set a default value for null values before using the variable. Here, "str" is null, and we set the fallback operator with fallback value in case of "str" is null. You need to do this before using it on the code.
Null Safety in simple words means a variable cannot contain a 'null' value unless you initialized with null to that variable. With null safety, all the runtime null-dereference errors will now be shown in compile time. String name = null ; // This means the variable name has a null value.
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.
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 ;
The function myVar will only get called if its not null as shown below.
myVar?.call( arg1 , arg2 );
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 :
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With