apply 静态方法

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

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

与动态调用 function 时使用与 positionalArguments 元素相匹配的位置参数和与 namedArguments 元素相匹配的命名参数相同。

如果 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]);