Golang面向过程编程-函数

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

一.什么是函数

  简单的说函数的作用就是把程序里多次调用的相同的代码部分定义成一份,然后起个名字,所有的调用都只用这个名字就可以了。修改代码时,只需要改变函数体内的代码即可。Go 语言最少有个 main() 函数。你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。函数声明告诉了编译器函数的名称,返回类型,和参数。Go语言标准库提供了多种可动用的内置的函数。

 

.函数的特点

1>.减少重复代码;

2>.使程序变得可扩展;

3>.使程序变得易维护;

 

.函数的返回值

  说简单点就是函数执行完毕之后,会用关键字return返回一个value,这个value就是返回值。案例如下:

 

.函数的传参姿势

       函数定义时指出,函数定义时有参数,该变量可称为函数的形参。形参就像定义在函数体内的局部变量。 但当调用函数,传递过来的变量就是函数的实参,函数可以通过两种方式来传递参数:

        a>.值传递:指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。

        b>.引用传递:是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。

  在默认情况下,Go 语言使用的是值传递,即在调用过程中不会影响到实际参数。

 

1.不定参数的传递 

 

2.任意类型的不定参数

 

.匿名函数

       匿名函数是指不需要定义函数名的一种函数实现方式。在Go里面,函数可以像普通变量一样被传递或使用,Go语言支持随时在代码里定义匿名函数。 匿名函数由一个不带函数名的函数声明和函数体组成。匿名函数的优越性在于可以直接使用函数内的变量,不必申明。

1>.匿名函数案例一,求某个数字的平方根。

2>.匿名函数案例二,对数字进行排序;

 

3>.匿名函数案例三,对字母进行排序;

 

.递归函数

      简单的说递归函数就是自己调用自己,但是你需要一定一个结束条件。那么有的小伙伴会问了,为什么要指定结束条件呢?因为调用递归函数的时候都会在系统内存中重新开辟出一块内存,如果你一直调用它不去给它一个终止点的话,物理内存很快就会被撑爆的。

 

七.嵌套函数

   嵌套函数,就是指在某些情况下,您可能需要将某函数作为另一函数的参数使用。

 

八.闭包函数

      闭包是由函数及其相关引用环境组合而成的实体(即:闭包=函数+引用环境)。 “官方”的解释是:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。 

  我们知道return可以返回一个字符串或是一个整数型当然也是可以返回一个函数,我们利用它可以返回函数的特性,可以在调用该函数的时候拿到返回的函数,再去执行返回的函数,最终得到我们想要的结果,要注意的是这个返回的函数的是可以获取到定义它的函数的环境变量。拥有这种定义方式和调用方法的函数,我们称之为比包函数。

1>.利用闭包函数求和;

 

 

2>.闭包函数挖坑(你会发现该函数存取的值总是最后一位的。)

3>.闭包函数填坑

 

 九.常用内置函数介绍

  

  未完待续。。。。