1、函数的定义
语法:
fun
函数名称
(
入参列表
):
返回类型
{
函数体
}
【案例】输入
5
个数,使用数组保存,进行排序。
![](https://i-blog.csdnimg.cn/blog_migrate/81d8946377d52a1ff66531aaa7d75f00.png)
MainActivity.kt
效果:
【案例2】定义排序函数
MainActivity.kt
效果:
2、函数的类型
(1)无入口参数无返回值
(2)无入口参数有返回值
(3)有入口参数无返回值
(4)有入口参数有返回值
3、单表达式函数
函数内部是一个表达式,也就是函数体非常简单,只有一句可以执行
4、函数的参数
(1)具名参数
(2)默认参数
(3)可变参数
注意:
添加
*
表示对数组进行展开
![](https://i-blog.csdnimg.cn/blog_migrate/2c0f973948e448542a4f79ad0933477e.png)
5、函数的分类
(1)顶层函数
创建一个函数在类之外,直接在包下。
(2)成员函数
在一个类内部定义,就是成员函数
(3)局部函数
语法:
fun 函数名(){
fun 函数名(){
}
}
【案例】
6、局部函数——举例
【案例】输入一组数,求其中最大值
MainActivity.kt
效果:
7、递归函数
自己调用自己。需要设置终止条件。例如:第100步是由第99步完成后来完成。直到第1步完成,开始逐步返回。
【案例】累和
从1+。。。+100
将此问题变成:
从(1+。。。+100),变成从(1+。。。+99),再加100
从(1+。。。+99),变成从(1+。。。+98),再加99
……
从(1+2),变成返回1加上2
递归函数如果调用写在函数体最后一行,称之为尾递归函数,这样可以节约栈空间,可以提高运行效率。
8、函数的重载
函数名称一样,但是签名不一样。
【案例】
【案例】递归再举例