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

Dart错误:返回类型'bool Function()'不符合闭包要求的'bool'类型

问题原因及解决方法

你的代码报错核心原因是没有调用isSpace方法,而是直接引用了方法本身。

在removeWhere的闭包逻辑里,word.isSpace返回的是一个bool Function()类型的函数对象,但removeWhere要求闭包必须返回bool值,类型不匹配导致了报错。

两种解决方式:

  • 方式一:调用方法
    修改getWords函数里的判断逻辑,给isSpace加上括号,执行方法获取返回的布尔值:

    List<String> getWords(String input) {
      List<String> result = input.split(" ");
      result.removeWhere((word) => word.isSpace());
      return result;
    }
    
  • 方式二:将方法改为Getter属性
    如果想保持word.isSpace的写法,可以把extension里的方法改成Getter属性,这样访问时无需加括号:

    extension on String {
      bool get isSpace {
        return trim().isEmpty;
      }
    }
    
    List<String> getWords(String input) {
      List<String> result = input.split(" ");
      result.removeWhere((word) => word.isSpace);
      return result;
    }
    

内容的提问来源于stack exchange,提问作者confused.jpg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 13:53:10