apply 静态方法

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

使用指定的参数动态调用 function

与使用与 positionalArguments 元素对应的参数和与 namedArguments 元素对应的命名参数动态调用 function 的行为相同。

包括如果 function 期望不同参数时抛出相同的错误。

示例

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

如果 positionalArguments 为 null,则视为空列表。如果省略或为 null 的 namedArguments,则视为空映射。

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

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

实现

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