Flutter 代码中三个点(...)语法的具体作用是什么?
语法含义说明
这是Dart 2.3及以上版本提供的特性,由展开操作符和集合if两个语法组合实现:
- 首先是
...展开操作符:作用是把后方数组中的所有元素,逐个展开插入到当前所在的父数组中,无需手动遍历添加元素。
举个基础示例:
var listA = [1,2,3]; // 展开listA的元素插入到listB中 var listB = [0, ...listA, 4]; // 最终listB的值为 [0,1,2,3,4]
- 其次是
集合if语法:支持将if判断直接写在集合内部,只有条件成立时,才会将后方的元素插入到集合中。 - 结合你的Flutter业务代码场景,完整逻辑是:你这段代码一般写在Widget的
children属性数组中,当state.isSubmitting值为true时,就会把后方数组里的SizedBox和LinearProgressIndicator两个组件展开插入到当前的children数组中渲染;如果条件不成立,这两个组件就不会出现在children数组里。
这种写法可以避免手动拼接数组的冗余代码,直接在集合内部完成条件判断和元素插入,可读性和简洁度都更高。
内容的提问来源于stack exchange,提问作者Mariam Albarghouti
相关产品推荐
相关产品推荐

