什么是函数
大多数人听到函数就头大,上学的时候没少被函数所折磨。(f(x)=x+1)。在这里说要聊的函数和我们中学时期所说的函数有点不一样。
中学的函数通常是一个方程,找出两个的对应关系然后通过计算得出一段规律从而总结出来的一套具有意义的算式。比如上面所说的f(x)=x+1 就是一个一元一次函数
在这里我们要谈的函数和上面说的函数有类似的地方,也有不一样的地方。在程序设计中函数的定义通常是一个有返回值或者没有返回值的的一段逻辑。
go中的函数
先看一下一个需求:在某个程序中,我有五个地方需要进行10个数中的两个数的加减。
想一下我们应该怎么做,当然在这里有过编程经验的同学已经想到了,可以封装一个方法也就是函数在函数中传入参数进行重复调用即可。可是小白的同学呢。我们可以这样来。
首先定义10个数
这里只说了两个数相加,没说那两个数相加,所以我们可以这样做。
这样就完成了我们的需求 我有五个地方需要进行10个数中的两个数的加减。
但是我们想 这样是不是重复度太高了,而且我们如果想进行其他的操作可咋整?
这个时候我们就可以封装一个函数进行操作,然后调用这个函数即可。
在我们上面的程序中main就是一个函数,他说一个主要的运行函数,也就是我们说的主函数。
我们来封装一下这个相加的操作
这样就封装了一个两个数相加的函数。其中的a,b是参数,他们的类型就是第一个int 也就是数字类型。返回值就是第二个int。
什么是参数 什么是返回值
参数就是我们调用函数的时候需要传进去的东西。我们拿中学的函数举例子-> f(x) = x + 1;
在这里 x 就是一个我们需要传入的内容,当x=1时 f(1) = 2,在这里 2 就是我们的返回值。
是不是还有点懵?我们还可以这样思考,上面图片中的a,b 就是一个原材料,需要在这个大括号中进行一个加工,而加工的逻辑就是我们的函数体,也就是我们要写的逻辑。而return出来的东西就是我们加工厂加工完的产物。这样说是不是就理解了什么是函数了?
怎么调用函数
调用函数也是相当的简单的,只需要我们在main里面这样写即可:
这里我们定义了一个k去接收这个函数的返回值,然后打印出k的值。当然这里有点多此一举,不必定义k也能打印出返回值
这个就是函数。当然,在实际的项目中,函数是一个非常复杂的逻辑,通常是会把使用多次或者重复两次及两次以上的逻辑抽离出来的。 多使用函数 可以使得自己的代码更加健壮清晰。
作用域
别人讲作用域可能非常的复杂,而我只需要简单的几句话就给你把作用域讲的明明白白。
首先什么是作用域:就是变量有作用的区域。
怎么区分作用域:看他在不在你想调用的函数中。
什么是全局作用域:他是不是不在任何一个函数中,
完了。就这三句话即可。
我们看来看看实现。
看懂这个图,就彻底搞明白了作用域。
总结
本章我们学习了go如何定义函数以及go中的作用域。