gpt4 book ai didi

dart - List.sort返回null

转载 作者:行者123 更新时间:2023-12-03 04:23:33 25 4
gpt4 key购买 nike

我有以下方法,该方法从API检索Budget的列表,并在处理之前对它们进行排序:

response['budgets']
.map((budget) => Budget.fromJson(budget))
.toList()
.sort((a, b) => budgetComparator(a, b))
.forEach((budget) => addBudget(budget));
budgetComparator是一种返回-1和1之间的 int的方法。
  int budgetComparator(Budget a, Budget b) {
String purposeA = purposeById(a.purposeId).name,
purposeB = purposeById(b.purposeId).name;
return purposeA.compareTo(purposeB);
}

当我运行以上命令时,出现错误消息:

NoSuchMethodError: The method 'forEach' was called on null



调试时,我可以观察到:
  • sort()方法确实返回了null
  • toList()方法返回8个Budget项的列表
  • budgetComparator始终返回-1、0或1的整数

  • 我该如何解决?

    最佳答案

    是的,sort方法确实返回null:
    https://api.dart.dev/stable/2.7.2/dart-core/List/sort.html

    如果您仍然想制作一根衬纸,可以做的是使用级联符号:
    https://dart.dev/guides/language/language-tour#cascade-notation-

    response['budgets'].map((budget) => Budget.fromJson(budget)).toList()
    ..sort((a, b) => budgetComparator(a, b))
    ..forEach((budget) => addBudget(budget));

    因此,与其在 forEach的结果上运行 sort,我们不如在列表中调用 forEach之后从 toList在列表上运行 sort

    关于dart - List.sort返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61173071/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com