不要在撕下时创建 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,