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

如何在Dart中使用for循环结合展开运算符构建列表以实现星级图标展示

解决Flutter中动态生成星级图标语法错误的问题

嘿,你的思路没问题——用展开运算符配合循环来根据book.rating生成对应数量的星级图标,只是语法上有个小细节没处理对,导致了那个错误提示。

错误根源

在Dart的集合字面量(比如[])里使用for循环时,不需要加箭头函数=>,直接在循环体内写要生成的Widget就可以了。你代码里的=>是多余的,这才触发了"expected an identifier and a ')' "的语法错误。

修正后的代码

child: Row(
  children: [
    ...(for (var i = 0; i < book.rating; i++) Icon(Icons.star))
  ],
),

另一种可选写法

如果你觉得集合内的for循环看着有点别扭,也可以用List.generate来创建图标列表,逻辑同样清晰:

child: Row(
  children: List.generate(book.rating, (_) => Icon(Icons.star)),
),

这里的_表示我们不需要用到循环的索引值,只是单纯生成对应数量的图标。

两种方式都能完美实现你想要的效果,选你觉得更易读的就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 03:03:12