展开运算符(spread operator)是一个三个连续点号(...)的符号,用于在数组、对象或字符串上“展开”它们的元素。
在 Flutter 中,展开运算符可用于以下场景:
- 将一个数组中的元素插入到另一个数组中。
var list1 = [1, 2, 3];
var list2 = [4, 5, ...list1, 6];
print(list2); // [4, 5, 1, 2, 3, 6]
- 将一个 Map 对象中的所有键值对合并到另一个 Map 中
var map1 = {'a': 1, 'b': 2, 'c': 3};
var map2 = {'d': 4, ...map1};
print(map2); // {'d': 4, 'a': 1, 'b': 2, 'c': 3}
- 将一个字符串中的字符分解为单个字符列表或将字符列表组合成一个字符串。
var str = 'hello';
var chars = [...str];
print(chars); // ['h', 'e', 'l', 'l', 'o']
var newStr = chars.join('');
print(newStr); // 'hello'
完整代码:
void main() {
var list1 = [1, 2, 3];
var list2 = [4, 5, ...list1, 6];
print(list2); // [4, 5, 1, 2, 3, 6]
var map1 = {'a': 1, 'b': 2, 'c': 3};
var map2 = {'d': 4, ...map1};
print(map2); // {'d': 4, 'a': 1, 'b': 2, 'c': 3}
var str = 'hello';
var chars = [...str];
print(chars); // ['h', 'e', 'l', 'l', 'o']
var newStr = chars.join('');
print(newStr); // 'hello'
}