apply static method

dynamic apply(
  1. Function function,
  2. List? positionalArguments, [
  3. Map<Symbol, dynamic>? namedArguments
])

Dynamically call function with the specified arguments.

Acts the same as dynamically calling function with positional arguments corresponding to the elements of positionalArguments and named arguments corresponding to the elements of namedArguments.

This includes giving the same errors if function expects different parameters.

Example:

void printWineDetails(int vintage, {String? country, String? name}) {
  print('Name: $name, Country: $country, Vintage: $vintage');
}

void main() {
  Function.apply(
      printWineDetails, [2018], {#country: 'USA', #name: 'Dominus Estate'});
}

// Output of the example is:
// Name: Dominus Estate, Country: USA, Vintage: 2018

If positionalArguments is null, it's considered an empty list. If namedArguments is omitted or null, it is considered an empty map.

void helloWorld() {
  print('Hello world!');
}

void main() {
  Function.apply(helloWorld, null);
}
// Output of the example is:
// Hello world!

Implementation

external static apply(
  Function function,
  List<dynamic>? positionalArguments, [
  Map<Symbol, dynamic>? namedArguments,
]);