You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中调用求和方法显示Closure: () => int的问题解决

问题解决:输出Closure: () => int的原因及修复

核心问题

你看到Closure: () => int是因为你没有调用函数,只是把函数对象本身转成了字符串。在Dart中,直接使用$getSum会输出函数的类型信息,而不是执行函数后的返回值。

修复方法

把调用代码里的$getSum改成${getSum()}:

Text(
  '${getSum()}',
  style: bold6,
),

额外的安全优化

你的求和代码存在潜在的空安全风险,比如data可能为null,或者data是空列表时data.first会抛出异常,建议优化成以下版本:

int getSum() {
  // 先检查data是否为空
  if (data == null || data!.isEmpty) {
    return 0;
  }
  
  final item = data!.first;
  int? uts = int.tryParse(item.nilaiIndeksUts ?? '');
  int? akhir = int.tryParse(item.nilaiIndeksAkhir ?? '');
  
  return (uts ?? 0) + (akhir ?? 0);
}

扩展:对所有数据项求和

如果你的需求是对data列表中所有项的nilaiIndeksUts和nilaiIndeksAkhir求和,而非仅取第一项,可以使用fold方法实现:

int getTotalSum() {
  if (data == null || data!.isEmpty) {
    return 0;
  }
  
  return data!.fold(0, (sum, item) {
    int? uts = int.tryParse(item.nilaiIndeksUts ?? '');
    int? akhir = int.tryParse(item.nilaiIndeksAkhir ?? '');
    return sum + (uts ?? 0) + (akhir ?? 0);
  });
}

内容的提问来源于stack exchange,提问作者sharon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:05:27