深入浅出Dart》函数

news2024/9/23 3:13:18

函数

Dart语言作为一门面向对象的语言,函数在其中占据了非常重要的位置。本文将详细解析如何定义和调用函数,以及箭头语法,高阶函数和闭包等内容。

1. 函数的定义和调用

在Dart中,函数可以定义为一段实现特定功能的代码块,可以带有参数和返回值。

定义函数:

void printHello(String name) {
  print('Hello, $name');
}

调用函数:

printHello('Dart');

2. 箭头语法

当函数体只有一句话的时候,我们可以使用箭头语法来简化函数的定义。

void printHello(String name) => print('Hello, $name');

printHello('Dart');

3. 高阶函数

高阶函数是指可以接收函数作为参数,或者返回函数的函数。Dart语言支持高阶函数。

例如,下面的calculate函数接受两个参数和一个函数,然后使用传入的函数来操作参数:

void calculate(int a, int b, Function operation) {
  print(operation(a, b));
}

calculate(2, 3, (a, b) => a * b);

4. 闭包

在Dart中,闭包可以定义为一个函数对象,即使其函数对象的调用在它原始范围之外,也能够访问在它词法范围内的变量。换句话说,闭包是一个能够读取其他函数内部变量的函数。

Function makeAdder(int addBy) {
  return (int i) => addBy + i;
}

void main() {
  var adder = makeAdder(2);
  print(adder(3)); // 输出5
}

在上述代码中,makeAdder函数返回一个新的函数,这个新的函数能够访问makeAdder函数的内部变量addBy

好啦,如此文章到这里就结束了

更多Android进阶指南 可以扫码 解锁 《Android十大板块文档》

1.Android车载应用开发系统学习指南(附项目实战)

2.Android Framework学习指南,助力成为系统级开发高手

3.2023最新Android中高级面试题汇总+解析,告别零offer

4.企业级Android音视频开发学习路线+项目实战(附源码)

5.Android Jetpack从入门到精通,构建高质量UI界面

6.Flutter技术解析与实战,跨平台首要之选

7.Kotlin从入门到实战,全方面提升架构基础

8.高级Android插件化与组件化(含实战教程和源码)

9.Android 性能优化实战+360°全方面性能调优

10.Android零基础入门到精通,高手进阶之路

敲代码不易,关注一下吧。ღ( ´・ᴗ・` ) 🤔

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1131935.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Docker】联合探讨Docker:容器化技术的革命性应用

前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 📕作者简介:热…

让CHAT生成对桥梁范围内施工注意事项及防护措施

ChatGPT,自动化撰写工具,生活必不可少的帮手。 今天小编带大家来看下,用CHAT生成对桥梁范围内施工注意事项及防护措施 桥梁施工要严格按照设计和施工规范来执行,以保证安全、质量和效率。下面是一些桥梁施工的注意事项及防护措施…

餐饮业如何高效经营?赶紧闭眼抄这个方法!

在现代社会,餐饮业已经成为人们日常生活中不可或缺的一部分。为了提高食堂运营效率,满足不断增长的客户需求,智慧收银系统应运而生。 智慧收银系统帮助食堂业主更好地理解其客户,提高服务质量,优化库存管理&#xff0c…

datahub 中血缘图的实现分析,在react中使用airbnb的visx可视化库来画有向无环图

背景 做大数据的项目,必不可少的是要接触到数据血缘图,它在大数据项目中有着很重要的作用。 之前在公司也做过一些案例,也看过很多友商的产品,阿里的DataWork,领英的Datahub, datawork的血缘图使用的是 G6…

电子学会C/C++编程等级考试2023年05月(三级)真题解析

C/C等级考试&#xff08;1~8级&#xff09;全部真题・点这里 第1题&#xff1a;找和为K的两个元素 在一个长度为n(n < 1000)的整数序列中&#xff0c;判断是否存在某两个元素之和为k。 输入 第一行输入序列的长度n和k&#xff0c;用空格分开。 第二行输入序列中的n个整数&am…

【021】整理力学拉伸实验数据(复制、黏贴、计算)_#VBA

整理力学拉伸实验数据 1. 需求2. 实现流程2.1 流程图2.2 运行方法2.3 完整代码 1. 需求 2. 实现流程 2.1 流程图 流程如上&#xff0c;因测试得到多个数据表格&#xff0c;先将表格数据合并&#xff0c;并以文件名作为每个数据的代号。然后更换坐标轴&#xff0c;通过对文件名…

单片机设计_RTC时钟(ACM32F403)

一、电路设计 ACM32F403开发板 实现结果&#xff1a;通过串口发送每秒的时间 二、运行结果 三、部分代码 #include "APP.h"UART_HandleTypeDef Uart_Handle;/********************************************************************************* * Function …

【Django 05】Django-DRF(ModelViewSet)、路由组件、自定义函数

1. Django-DRF&#xff08;ModelViewSet&#xff09; 1.1 DRF是什么&#xff1f; ModelViewSet 是 Django REST framework 提供的一个视图集类&#xff0c;它封装了常见的模型操作方法。 模型类提供了默认的增删改查功能。 它继承自 GenericViewSet、ListModelMixin、Retri…

(四)Apache log4net™ 手册 - AOP

0、引言 如果你已经开发了一个中型或者大型的 .NET / .NET Framework 项目但还没有为其添加日志系统。那么&#xff0c;你可能需要重新回顾大量的业务逻辑代码&#xff0c;并在其中找到合适的位置&#xff0c;编写合适的日志输出语句进行插入&#x1f641;。 显然&#xff0c…

mybatisPlus逻辑删除注解@TableLogic

当我做了一个实体类&#xff0c;字段为del_flag的逻辑删除字段&#xff0c;要通过这个字段控制数据库中的数据逻辑删除。 重写mapper中的deleteById&#xff0c; 先按id查出数据&#xff0c;在更新此数据中的del_flag字段为1&#xff0c;调用update方法更新数据。 这种方式我…

adb: error: 46-byte write failed: Invalid argument

使用adb pull可以&#xff0c;但是adb push fail。 貌似是adb的问题&#xff0c;将adb.exe 重命名为pdb&#xff0c;使用pdb push就行了。

三季报开启消费电子增长新纪元?看蓝思科技如何落子

10月18日晚间&#xff0c;蓝思科技公布了2023年第三季度报告。根据报告&#xff0c;蓝思科技第三季度营业收入136.31亿元&#xff0c;同比增长9.98%&#xff0c;环比增长31.85%&#xff1b;归母净利润10.95亿元&#xff0c;同比增长2.93%&#xff0c;环比119.88%。 作为消费电…

OceanBase 全局索引与局部索引探索

OceanBase 全局索引与局部索引探索导致的本区域查找和跨区域查找。 作者&#xff1a;网名大数据模型&#xff0c;对制造业、银行业、通讯业了解多一点&#xff0c;关心专注国产数据库技术布道以及数据资产建设的应用实践。 爱可生开源社区出品&#xff0c;原创内容未经授权不得…

day02:DML DQL DCL

目录 一:DML 二:DCL 三:DCL 一:DML 1:概念:数据操作原因&#xff0c;对数据进行增删改。 2:三个操作 (1):增加:insert id name age gender 1 令狐冲 23 男 2(添加的数据)风清扬25男 1--->给指定字段添加数据:insert into 表名(字段1&#xff0c;字段2--)values…

基础课9——机器学习

1.概念 机器学习是一种数据分析技术&#xff0c;它使计算机能够像人类一样从经验中学习。机器学习算法使用计算方法直接从数据中获取信息&#xff0c;而不依赖于预定方程模型。当可用于学习的样本数量增加时&#xff0c;这些算法可以自适应提高性能。 机器学习是人工智能的一…

方法递归详解

什么是方法递归 方法直接调用自己或者间接调用自己的形式称为方法递归&#xff08; recursion&#xff09;。 递归做为一种算法在程序设计语言中广泛应用。 递归的形式 直接递归&#xff1a;方法自己调用自己。 间接递归&#xff1a;方法调用其他方法&#xff0c;其他方法又…

Postman中几个body请求格式区别及使用说明

参阅&#xff1a;https://blog.csdn.net/qq_41063141/article/details/101505956&#xff0c;在此基础上添加代码使用说明 一、Params与Body 二者区别在于请求参数在http协议中位置不一样。 Params 它会将参数放入url中以&#xff1f;区分以&拼接 Body则是将请求参数放在请…

39.B树,B+树(王道第7章查找补充知识)

目录 一. B树 &#xff08;1&#xff09;B树的定义 &#xff08;2&#xff09;B树的高度 &#xff08;3&#xff09;B树的插入 &#xff08;4&#xff09;B树的删除 二. B树 &#xff08;1&#xff09;B树的定义 &#xff08;2&#xff09;B树与B树的区别 一. B树 &am…

什么是自动证书管理环境(ACME)

组织的网站需要 24x7 全天候可用&#xff0c;以建立信任并提供信息&#xff0c;如果网站因证书过期而停机&#xff0c;那么很难恢复失去的客户信任、收入和品牌声誉&#xff0c;手动管理证书基础结构会使组织面临中断、中间人 &#xff08;MITM&#xff09; 攻击等的严重风险。…

新上线游戏产品需不需要防御?

游戏运营免不了遭受恶意DDoS和CC攻击&#xff0c;且攻击常达百G以上&#xff0c;攻击流量过大&#xff0c;超过一般服务器的基础防护能力&#xff0c;不少企业面对大流量攻击显得束手无策&#xff0c;只能选择被迫停机&#xff0c;其次游戏行业利润高&#xff0c;很容易被黑客盯…