首页 > 解决方案 > Dart / Flutter 与“对参数使用通用函数类型语法”(use_function_type_syntax_for_parameters)混淆

问题描述

我在 vscode 中收到此警告,我不确定如何解决。下面的 vscode 中显示了“对参数使用通用函数类型语法”警告:

在此处输入图像描述

但是,我一直无法理解 dart-lang.github 来理解我做错了什么: https ://dart-lang.github.io/linter/lints/use_function_type_syntax_for_parameters.html

特别奇怪的是vscode中蓝色下划线参数的数量(如图所示)我仍然不确定它是在抱怨Sort()函数还是getField()函数。(我认为是前者?)

编写该函数以满足该建议的正确方法是什么?

这是代码:

@override
  void sort<T>(Comparable<T> getField(Question d), bool ascending) {  <-- warning on this line
    data.sort(( a,  b) {
      if (!ascending) {
        final Question c = a;
        a = b;
        b = c;
      }
      final Comparable<T> aValue = getField(a);
      final Comparable<T> bValue = getField(b);
      return Comparable.compare(aValue, bValue);
    });
  }

标签: functionflutterdartgenericsparameters

解决方案


根据您的链接建议更改Comparable<T> getField(Question d)为。Comparable<T> Function(Question d) getField


推荐阅读