void Function() 在 Dart 中做什么?

Mic*_*ael 4 dart

我对 dart 很陌生,想知道这个“包装”的功能到底是做什么的?它就像一个带有“connectUnits(userRepo)”的普通函数一样被调用:

void Function(
    Store<AppState> store,
    dynamic action,
    NextDispatcher next,
  ) connectUnits(
    UnitsRepository unitsRepository,
  ) {
    return (store, action, next) {
      unitsRepository.units().listen((units) {
        store.dispatch(LoadUnitsAction(units));
        next(action);
      });
    };
  }
Run Code Online (Sandbox Code Playgroud)

谢谢 & 最好的,迈克尔

Ale*_*uin 5

函数是 Dart 中的一等公民。您的示例定义了一个名为的函数connectUnits,该函数返回一个带有签名的函数void Function(Store<AppState> store, dynamic action, NextDispatcher next)

为了更好地理解,您的代码与以下内容相同:

// define a kind of function
typedef MyFunction = void Function(Store<AppState> store, dynamic action, NextDispatcher next);

MyFunction connectUnits(UnitsRepository unitsRepository) {
  return (store, action, next) {
    unitsRepository.units().listen((units) {
      store.dispatch(LoadUnitsAction(units));
      next(action);
    });
  };
}
Run Code Online (Sandbox Code Playgroud)