09-kotlin-函数加强
前面我们简单入门了函数, 今天我们来详细学习函数相关的内容
函数的定义, 函数的参数, 函数的返回值
函数的本质, 可以理解是一个或者一组功能的组合.
人的消化系统其实就可以理解是一组功能的组合.
来带着大家复习下初中生物,请回答1和8分别是什么器官
![](https://img.haomeiwen.com/i4499731/177df1feddadf8c4.png)
假如人的消化系统是一个函数的话,我们知道:
有的时候我们吃饭了就拉屎,
有时候我们吃饭了拉不出来屎(可能会肚子疼),
有的时候我们不吃饭还是会拉屎(宿便),
有的时候我们不吃饭就不拉屎(正常)
我们来理一理思路:
- 饭 → 消化系统函数 → 拉屎
- 饭 → 消化系统函数(肚子疼) → 没拉屎
- 没饭 → 消化系统函数 → 拉屎(宿便)
- 没饭 → 消化系统函数 → 没拉屎
![](https://img.haomeiwen.com/i4499731/d8335853c64b25ef.png)
好的上面的内容大家好好理一理,想明白:
接下来我们来看看kotlin里面函数编写的规则
![](https://img.haomeiwen.com/i4499731/fed10793022b9615.png)
这种东西看起来好抽象,好难理解
![](https://img.haomeiwen.com/i4499731/6c9b575117e64537.png)
不用着急,我来带大家看点真货
![](https://img.haomeiwen.com/i4499731/5dc7be66274fa4c5.png)
上面的图是大家已经写过好多次的HelloWorld,来详细解释一下
![](https://img.haomeiwen.com/i4499731/001deda9b9ac5d84.png)
对照下图再看一遍, 我再写一次main函数
![](https://img.haomeiwen.com/i4499731/da9963d038f2fd70.png)
这样多看几遍,是不是有点感觉了.
再多看几眼,你就会拉
![](https://img.haomeiwen.com/i4499731/6d7a72722a03d46a.png)
计算机的是处理数据的,我们编写的任何函数也都是在处理数据,解析数据
参数交给函数, 函数处理完毕,产生输出.看下图是不是很像我们的消化系统
![](https://img.haomeiwen.com/i4499731/8ec82962ce0373d1.png)
当然也会有另外三种情况,对比一下:
![](https://img.haomeiwen.com/i4499731/ecff954be21f8900.png)
看了半天理论,我们来实战一下
今天我们来做个计算器,
![](https://img.haomeiwen.com/i4499731/2c0bfbd9de68be4d.png)
先看一下计算器的需求:
计算器就是来进行加减乘除的东西
![](https://img.haomeiwen.com/i4499731/6a35223626f95a72.png)
计算器有4个重要的功能,加减乘除,这每一个功能对应这一个函数
我们为了简化需求,加减乘除都只进行两个参数的计算
![](https://img.haomeiwen.com/i4499731/3b977095d6cfff5c.png)
![](https://img.haomeiwen.com/i4499731/1c3140e642445892.png)
用详细的图去表示, 两个参数Int类型, x和y 经过函数处理 return 出来x+y
![](https://img.haomeiwen.com/i4499731/2bb961ccebb34577.png)
![](https://img.haomeiwen.com/i4499731/e63d528b5cc803e1.png)
那么如何调用我们写的函数呢?
![](https://img.haomeiwen.com/i4499731/e325f8de695ae6a2.png)
![](https://img.haomeiwen.com/i4499731/4ad987c6d06e2b77.png)
![](https://img.haomeiwen.com/i4499731/0a74ff3fb3b81b3a.png)
今天的内容比较重要, 上面的代码一定要自己敲一下感受一下~
作业:
-
请编写函数, 函数名为sayHello 方法返回值是String类型, 一个参数是String类型 名称为name
-
请编写函数, 函数名为checkAge 方法的返回值是Boolean类型, 一个参数是整数类型 名称为age
-
请编写函数,函数名为saveLog 方法没有返回值 一个参数是整数类型 名称为logLevel