在Dart中对未使用的构建器参数使用下划线

136 阅读1分钟

构建器模式是在Flutter中创建可组合的UI的一个基本构建块。

因此,Flutter暴露了方便的构建器类型,这些类型在许多部件类中被用作参数。

下面是Flutter SDK中的几个例子。

/// Signature for a function that creates a widget, e.g. [StatelessWidget.build]
/// or [State.build].
typedef WidgetBuilder = Widget Function(BuildContext context);
/// Signature for a function that creates a widget for a given index, e.g., in a
/// list.
typedef IndexedWidgetBuilder = Widget Function(BuildContext context, int index);

构建器的一个非常常见的用例是在用Navigator 推送一个新的路由。

Navigator.of(context).push(MaterialPageRoute(
  builder: (context) => DetailPage(),
));

然而,如果不使用构建器中的上下文参数,可以用`_` (这是Dart中有效的标识符名称)代替。

Navigator.of(context).push(MaterialPageRoute( builder: (_) => DetailPage(), ));


这也适用于需要一个以上参数的构建器。例如,这里有一个`ListView` ,上下文参数和索引参数都没有使用。

ListView.builder( itemBuilder: (_, __) => ListTile(title: Text('a list item')), );


请注意我们如何使用`__` (双下划线)来表示第二个参数,以区别于第一个参数。

> 启示:对未使用的构建器参数使用`_` ,具有意义,并使代码更加简洁。