Dart中的void Function()是什么意思?

4

我对Dart还比较陌生,想知道这个“wrapped”函数具体是做什么的?它像普通函数一样被调用,使用“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);
      });
    };
  }

感谢您,祝一切顺利。 Michael
1个回答

6

在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);
    });
  };
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接