Flutter 颤振语法中三个点[…]的含义

Flutter 颤振语法中三个点[…]的含义,flutter,syntax,Flutter,Syntax,有人能澄清一下颤振中“…”的含义和用法吗 我想学习颤振语法中使用的“三点”。读了一些书后,我发现我要找的词是“传播” Widget\u build(){ 列出子项=[ 文本(“第一个孩子”), 文本(“第二个孩子”), 文本(“第三个孩子”), ]; 返回列( 儿童:[ 儿童 文本(“第四个孩子”), ], ); } 如果我没有将…放在子项之前,它将给出一个错误元素类型“List”无法分配给列表类型“Widget”。 我只是觉得应该有人发布一个关于它的问题。颤振语法中的“…”是什么?这意味着什

有人能澄清一下颤振中“…”的含义和用法吗

我想学习颤振语法中使用的“三点”。读了一些书后,我发现我要找的词是“传播”

Widget\u build(){
列出子项=[
文本(“第一个孩子”),
文本(“第二个孩子”),
文本(“第三个孩子”),
];
返回列(
儿童:[
儿童
文本(“第四个孩子”),
],
);
}
如果我没有将
放在
子项之前,
它将给出一个错误
元素类型“List”无法分配给列表类型“Widget”。


我只是觉得应该有人发布一个关于它的问题。颤振语法中的“…”是什么?这意味着什么?

Dart 2.3引入了扩展运算符(…)和空感知扩展运算符(…),它们提供了一种将多个元素插入集合的简洁方法

例如,可以使用扩展运算符(…)将列表的所有元素插入到另一个列表中:

var列表=[1,2,3];
var list2=[0,…list];
断言(list2.length==4);
如果扩展运算符右侧的表达式可能为空,则可以使用空感知扩展运算符(…?)来避免异常:

var列表;
变量列表2=[0,…?列表];
断言(list2.length==1);

有关使用spread运算符的更多详细信息和示例,请参阅。

我曾经遇到过此问题。我通过添加.toList()解决了这个问题;到列表小部件

Widget _build() {
List<Widget> children = [
Text("first child"),
Text("second child"),
Text("third child"),
].toList();

return Column(
children: <Widget>[
  ...children,
  Text("fourth child"),
],
);
}
Widget\u build(){
列出子项=[
文本(“第一个孩子”),
文本(“第二个孩子”),
文本(“第三个孩子”),
].toList();
返回列(
儿童:[
儿童
文本(“第四个孩子”),
],
);
}
希望对您有所帮助。

扩展运算符(…)
用于提供一种为集合赋值的方法,通常在列中找到,用于呈现其子项

List<String> values = ['one', 'two', 'three'];
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            ...values.map((value) {
              return Text(value);
            }),
          ],
        ),
      ),
    );
列出值=['1'、'2'、'3'];
返回脚手架(
正文:中(
子:列(
mainAxisSize:mainAxisSize.min,
儿童:[
…values.map((值){
返回文本(值);
}),
],
),
),
);
输出:


我的代码实际上正在运行。我只是想有人张贴一个明确的定义和使用“…”但谢谢你的回答。
List<String> values = ['one', 'two', 'three'];
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            ...values.map((value) {
              return Text(value);
            }),
          ],
        ),
      ),
    );