unnecessary_set_literal
花括号不必要地将此表达式包裹在一个集合字面量中。
描述
#当一个返回类型为 void
、Future<void>
或 FutureOr<void>
的函数使用了表达式函数体 (=>
) 并且返回的值是一个包含单个元素的集合字面量时,分析器会生成此诊断。
虽然语言允许,但从 void
函数返回值是没有用的,因为它无法在调用点被使用。在这种特定情况下,返回值通常是由于对语法存在误解。花括号是不必要的,可以移除。
示例
#以下代码会产生此诊断,因为传递给 g
的闭包返回类型为 void
,但却返回了一个集合
dart
void f() {
g(() => {1});
}
void g(void Function() p) {}
常见修复
#移除值周围的花括号
dart
void f() {
g(() => 1);
}
void g(void Function() p) {}