本文主要介绍了GO语言不固定参数函数与匿名函数的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
不固定参数函数
在go语言中,允许对函数设置不固定参数。不过需要注意的是,虽然不限制参数数量,但限制了参数的数据类型。
从原理分析,不固定参数利用了切片的解包。切片(或称动态数组)的详细用法可去了解下切片的相关知识点。
不固定参数的应用实例如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
在上面这段程序中,我们先来看看main函数。可以看到,我们向test中分别传入了四个不同类型的变量:整型,字符串,切片和接口(interface)(接口也是一种数据类型,当然可以作为参数传递)。
再看看test函数,我们定义了一个接口类型的变量numbers,用“..."来代表”我们不确定这个函数要接收多少参数,所以用...来表示我们要接受n个参数”。不过我们传进去的参数类型还是不变的,将%v改成%T看看类型就知道了,结果为
int
string
[]string
map[string]interface {}
当然,是因为我们往函数里传了四个不同类型的参数,才需要将函数变量定义为接口类型。假设我们传的都是单一类型的变量就就不用了。例子如下
1 2 3 4 5 6 7 8 9 10 11 12 |
|
运行结果为
1
2
3
4
匿名函数
Go语言中,函数可以没有具体的函数名,并将整个函数作为变量去使用。使用方法有两种:函数定义并使用,函数以函数变量表示。
其实就是把这个函数执行后的返回值当作变量去用,相当于先执行一次该函数,再把该函数的返回值去赋给其他变量或当作参数去传入函数。比较简单,使用例如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
到此这篇关于GO语言不固定参数函数与匿名函数的使用的文章就介绍到这了,希望可以帮到你。