《越空Dart教程》:第六节 函数

《越空Dart教程》:第六节 函数

自我介绍

大家好,我是越空,一位货真价实的16岁开发者。由于最近我在学习Dart这门语言,所以我就想总结我所学到的知识,分享给大家,让大家和我一起学习这门语言,争取做到可以让大家真的也学习到东西,并且少走一些弯路,感谢大家的支持。
这是我发表的第一套教程,多多少少会有不足的地方,还请大家多多见谅,有什么问题或者建议,也可以发表评论和私信我,希望可以得到大家的支持,我会再接再厉的!
那么接下来,我们正式开始今天的学习吧!

这是一套系列课程,新来的读者请从第一节开始学习

在上一节我们已经学完了Dart中的循环语句。

本节课我们将学习Dart中的函数,有函数、参数、匿名函数、递归、闭包五部分。

第一部分:函数

函数的定义

在Dart中我们常用的print()就是一个函数,或者叫做方法,是系统内置的方法。(编程)语言是非常灵活的,我们可以自己去写一个方法,定义方法的基本格式是这样的:

返回值类型 方法名称(参数,1参数2,…){
方法体
return 返回值;
}

方法命名的规则与变量命名的规则相同。返回值类型那里可以为空,就像是我们定义变量是可以用var一样,它可以自动判断类型,返回值类型可以是任何类型,num、String、List、Map等等。如果什么东西都不返回,也就是没有 (return 返回值;)语句,那返回值就是void 空返回值。接下来我们演示一下,在这里插入图片描述

函数的调用

我们一共定义了三个函数,接下来我们像调用print函数一样去使用它们在这里插入图片描述

箭头函数

函数中只有一行代码的时候 为了简化 可以使用箭头函数在这里插入图片描述

函数作用域

函数中也可以嵌套函数,这就涉及到了作用域的问题在这里插入图片描述

第二部分:参数

传参

参数可以让函数变得更加灵活,可以去对它进行一个控制
例子1:计算x的y次方z

在这里插入图片描述

例子2:打印一个学生信息在这里插入图片描述

函数之间互相调用

例子:实现给list进行去重在这里插入图片描述

可选参数

在这里插入图片描述

默认参数在这里插入图片描述

命名参数在这里插入图片描述

函数做参数在这里插入图片描述

第三部分: 匿名函数

匿名函数

在这里插入图片描述
除此之外 在调用将函数作为参数的函数的时候 用于传参的也可以是匿名方法,就像是在第三节我们讲数据类型时 讲到的forEach、map等函数。

自执行函数

自执行方法也属于是匿名方法,与普通方法的区别是,它是自己传参自己调用。格式是(匿名函数)(传参)
在这里插入图片描述

第四部分:函数递归

递归的意思就是说在一个函数中调用了它自己,比如函数a中调用了函数a。
例子1:使用递归来计算a的阶乘
首先我们要了解什么是阶乘,阶乘是数学术语,它的定义是:一个正整数的阶乘是所有小于及等于该数的正整数的积。在这里插入图片描述
例子2:使用递归来计算a-b的和
在这里插入图片描述

第五部分:闭包

最后一部分,讲一下闭包的概念。先说一下全局变量和局部变量,
全局变量
在这里插入图片描述
局部变量
在这里插入图片描述
全局变量和局部变量的区别:
全局变量:全局变量常驻内存、全局变量污染全局
局部变量:不常驻内存会被垃圾机制回收、不会污染全局

全局变量虽然可以全局使用,但是会污染全局。局部变量虽然不会污染全局,但是不可以全局使用 会被垃圾机制回收。可不可以有一种方式既能常驻内存,又不污染全局呢,有,这里就产生了闭包,闭包可以解决这个问题。
闭包: 函数嵌套函数, 内部函数会调用外部函数的变量或参数, 变量或参数不会被系统回收(不会释放内存)
闭包的写法:函数嵌套函数,并return 里面的函数,这样就形成了闭包。在这里插入图片描述

结束

好了,这节讲了函数、参数、匿名函数、递归、闭包五大部分,希望对你有帮助。
下节预告
讲解Dart中的类。

好了,这节就分享这么多了,我们下节再见,祝大家编程愉快!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值