不要在撕下时创建 lambda
Don't create a lambda when a tear-off will do
@override
Widget build(BuildContext context) {
return GestureDetector(
key: Key('${authText}button'),
onTap: () => onTapFunction(),
child: Container(
height: 30.h,
width: 150.w,
decoration: BoxDecoration(
color: bgColor,
borderRadius: const BorderRadius.all(
Radius.circular(10),
),
),
child: Center(
child: Text(
authText,
style: TextStyle(
color: Colors.white,
fontSize: 20.sp,
fontFamily: 'Corporate-Rounded',
),
),
),
),
);
}
在 onTap: () => onTapFunction() 代码中,非常好的分析 pub.dev/packages/very_good_analysis(flutter 代码分析)抱怨“不要在撕下时创建 lambda”。谁能解释一下 dart 中的 lambda 是什么?
我的猜测是 onTapFunction
看起来像这样:void onTapFunction()
,或者像这样 Future<void> onTapFunction() async
。关键是这是一个不带参数且 returns 没有值的函数,类似地,您正在创建的 lambda () => <SOMETHING>
也不带参数并且 returns 也没有值。这意味着您可以通过引用传递函数来完全跳过 lambda,类似于传递任何其他变量的方式:
发件人:
onTap: () => onTapFunction(),
收件人:
onTap: onTapFunction,
@override
Widget build(BuildContext context) {
return GestureDetector(
key: Key('${authText}button'),
onTap: () => onTapFunction(),
child: Container(
height: 30.h,
width: 150.w,
decoration: BoxDecoration(
color: bgColor,
borderRadius: const BorderRadius.all(
Radius.circular(10),
),
),
child: Center(
child: Text(
authText,
style: TextStyle(
color: Colors.white,
fontSize: 20.sp,
fontFamily: 'Corporate-Rounded',
),
),
),
),
);
}
在 onTap: () => onTapFunction() 代码中,非常好的分析 pub.dev/packages/very_good_analysis(flutter 代码分析)抱怨“不要在撕下时创建 lambda”。谁能解释一下 dart 中的 lambda 是什么?
我的猜测是 onTapFunction
看起来像这样:void onTapFunction()
,或者像这样 Future<void> onTapFunction() async
。关键是这是一个不带参数且 returns 没有值的函数,类似地,您正在创建的 lambda () => <SOMETHING>
也不带参数并且 returns 也没有值。这意味着您可以通过引用传递函数来完全跳过 lambda,类似于传递任何其他变量的方式:
发件人:
onTap: () => onTapFunction(),
收件人:
onTap: onTapFunction,