Dart/Flutter 中什么时候应该使用分号?

Aed*_*mas 4 dart flutter

我是 Dart/Flutter 的初学者,尝试阅读本文,但我仍然不明白何时使用分号。为什么我们不在小部件的每个括号末尾插入分号?

Sur*_*gch 9

Dart中有两种语句:简单语句复合语句

在简单语句末尾添加分号

例子:

  • print('hello world');
  • return myValue;
  • var x = 4;

不要在复合语句末尾添加分号

复合语句具有代码块,其范围由大括号定义{ }。右花括号后不要使用分号。

if 语句示例:

if (x > 2) {
  print(x);
}
Run Code Online (Sandbox Code Playgroud)

print(x)是一个简单的语句,因此需要一个分号,但 if 语句的右大括号不需要。

复合语句的其他示例包括循环、switch 语句和功能块。

不要在列表项之间添加分号

在 Dart 中,列表中的项目用逗号分隔,如下所示:

var myList = [1, 2, 3];
Run Code Online (Sandbox Code Playgroud)

分号位于列表的右方括号后面,表示语句已完成,但列表项本身使用逗号。

如果在最后一项后添加逗号,您还可以垂直设置列表格式,如下所示:

var myList = [
  1, 
  2, 
  3,
];
Run Code Online (Sandbox Code Playgroud)

在 Flutter 布局中,您通常会拥有遵循相同模式的小部件列表。

颤动示例

看看 Flutter 中的这个例子:

class MyWidet extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Container(
        width: 300,
        color: Colors.blue,
        margin: EdgeInsets.all(10),
        padding: EdgeInsets.all(10),
        child:
          Wrap(
            children: [
              MyWidget(),
              MyWidget(),
              MyWidget(),
              MyWidget(),
              MyWidget(),
            ],
        ),
      ),
    ); // end of the return statement
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意以下事项:

  • }大括号(对于MyWidet类和build方法)都不使用分号。
  • 参数列表(划分诸如widthcolorchild等)是列表。他们使用逗号。
  • Wrap 的子项也在列表中。他们使用逗号。
  • 虽然又长又散,但这里只有一个简单的语句,即return语句,所以只有一个分号。