首页 > 其他分享 >Flutter-Dart中(){}和()=>{}的细微区别

Flutter-Dart中(){}和()=>{}的细微区别

时间:2023-12-23 10:01:06浏览次数:34  
标签:语句 函数 Dart 箭头 匿名 Flutter 细微 setState

在这里插入图片描述

()=>{}

在Dart语言中,=>符号是箭头语法的一部分,它用于创建单行函数或表达式的缩写。在你的两个例子中,使用()=>和(){}都是合法的,但有细微的区别。

()=> 箭头函数 (Arrow function): 这是一种简写形式,适用于只有一条语句的函数体。在这种情况下,函数体的结果就是函数的返回值。示例:

onDragStarted: () => setState(() => isShowTrashCan = true),

(){}

(){} 匿名函数 (Anonymous function): 这是传统的函数声明形式,适用于多行函数体或需要执行多个语句的情况。示例:

onDragStarted: () {
  setState(() {
    isShowTrashCan = true;
  });
},

在你的情况下,由于setState只有一行语句,你可以选择使用箭头函数形式,使代码更加简洁。箭头函数通常用于单行表达式,而匿名函数则用于包含多行语句的情况。

选择使用哪种形式取决于个人偏好和代码的清晰度。如果函数体非常简单,而且可以在一行内完成,那么使用箭头函数可能更具可读性。如果函数体较长或者需要执行多个语句,使用匿名函数可能更合适。


<center>结束语</center> Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!

标签:语句,函数,Dart,箭头,匿名,Flutter,细微,setState
From: https://blog.51cto.com/u_15777557/8944855

相关文章

  • Flutter子工程编译,Ruby升级及Cocoapods安装问题集
    背景:工程为iOS原生与Flutter混合开发的工程,在编译Flutter子工程的过程中报了一个错,一度让我以为是ruby与pod的版本不兼容导致了一些奇奇怪怪的问题,随即来回折腾了Ruby环境升级与pod的升级安装。问题1:flutter子工程执行了flutterpubget,执行flutterbuildios--no-codesign时,报......
  • Flutter 隐式动画
    通过几行代码就可以实现隐式动画,由于隐式动画背后的实现原理和繁琐的操作细节都被隐去了,所以叫隐式动画,FLutter中提供的[AnimatedContainer]、[AnimatedPadding]、[AnimatedPositioned.AnimatedOpacity]、[AnimatedDefaultTextStyle]、[AnimatedSwitcher]都属于隐式动画隐式动画......
  • Android应用开发长按拖拽-Flutter的LongPressDraggable控件回调函数onDraggableCancel
    onDraggableCanceled介绍LongPressDraggable的onDraggableCanceled回调在拖动被取消时触发。拖动可能会被取消,例如用户在拖动开始后移动了太快或在放置之前取消了拖动。onDraggableCanceled的使用以下是如何使用onDraggableCanceled的示例:LongPressDraggable<int>(//......
  • Flutter AnimatedList 实现动态列表
    import'dart:async';import'package:flutter/material.dart';finalGlobalKey_globalKey=GlobalKey();classMyAnimatedListextendsStatelessWidget{constMyAnimatedList({super.key});@overrideWidgetbuild(BuildContextcont......
  • Flutter 编译是pod intsall github 资源下载失败
    在fluterr编译报错然后显示github.xxxxx访问超时处理办法podinstall主要是读取profile文件platform:ios,'9.0'target'YourAppName'douse_frameworks!#这是安装依赖位置pod'SomeDependency'#添加其他依赖项...end想办法下载到github的文......
  • Flutter Key 以及通过Key获取子组件的状态和方法
    import'package:flutter/material.dart';classColorItem{GlobalKeykey;Colorcolor;//设置子组件的key,这里用的GlobalKey,用来后面获取子组件//如果不用获取子组件,也可以用ValuekeyColorItem({requiredthis.color}):key=GlobalKey();}classFlutterKe......
  • 想要深入学习Flutter,这篇文章让你一步到位
    前言Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面一份代码可以同时生成iOS和Android两个高性能、高保真的应用程序Flutter目标就是使开发人员能够交付在不同平台上都感觉自然流畅的高性能应用程序,并且兼容滚动行为、排版、图标等方面的......
  • iOS项目中加入flutter
    新建一个iOS项目Test在iOS同级目录下建一个flutter modulefluttercreate--templatemodulemy_flutterpodfile编写如下#Uncommentthenextlinetodefineaglobalplatformforyourproject#platform:ios,'9.0'target'Test'do#Commentthenextl......
  • Flutter 使用PageView 自定义无限轮播
    import'package:flutter/material.dart';int_getRealIndex(intindex,intlength){returnindex>=length?index%length:index;}classInfinitySliderextendsStatefulWidget{finalintinitialPage;finalList<Widget>items;......
  • Flutter video_player播放视频
    1、pubspec.yaml文件引入插件dependencies:...video_player:^2.8.12、页面使用(这里我是宽度百分百,高度自适应了)lateVideoPlayerController_controller;Container(width:MediaQuery.of(context).size.width,child:AspectRatio(aspectRatio:_......