Golang的...
来源:互联网 发布:gpgpu编程技术 编辑:程序博客网 时间:2024/06/05 10:07
原文:http://gotaly.blog.51cto.com/8861157/1545952
函数定义
首先来看如何定义一个不定参数的函数:
func YourFun(v... interface{}){}
该函数定义,定义了一个接受任何数目任何类型参数的函数。这里特殊的语法是三个点“…”,在一个变量后面加上三个点后,表示从该处开始接受不定参数,不同于python,golang的不定参数如果将这里”interface{}” 替换成某一确定类型,那么其就只能接受该类型的不定参数。
三个点
上面我们看到有三个点”…”的特殊标记。那么这三个点”…”有啥作用呢?
不定参数
如上所述,在定义不定参数时,表示从该参数开始记录不定参数
解引用slice
当要传递若干个值到不定参数函数中得时候,可以手动书写每个参数,也可以将一个slice传递给该函数:
YourFunc (YourSlice...)
通过”…”可以将slice中得参数对应的传递给函数。相当于python中得“*args”
这里要注意的是,解引用slice目前只能在不定参数函数传递参数时使用,在其他地方使用会报错。
遍历参数
下面我们来看一个实例:
func P (v... string) {for _,item := range v { fmt.Println("item:",item) }}func main() { var l []string l = append(l,"a") l = append(l,"b") fmt.Println("l is ",l) P(l...)}
这里我们看到的结果是,首先一个完整的list,然后是每个元素:
l is [a b]item: aitem: b
通过配合使用for…range可以遍历不定参数v中得每个参数。这里我们将不定参数类型设为string,因此只能接受若干的string 类型的参数。
0 0
- Golang的...
- 【golang】golang redis 的使用
- [Golang]golang中自动锁的实现
- Golang的一点心得
- GOLANG 实现的 fastcgi
- GoLang反射的规则
- Golang实现的红黑树
- golang websocket的例子
- Golang tag 的使用方法
- golang的pprof支持
- golang 的channel
- goLang的前景
- Golang的第一天
- golang的初始化顺序
- Golang的演化历程
- golang的json操作
- Golang的GC信息
- Golang的md5加密
- 应用更新跳转 AppStore,千万别一不小心跳到 itune,因为 itune 里的 app 没有更新按钮
- react项目中通过 iscroll 实现上拉加载,下拉刷新
- Linux系统中的动态库和静态库
- php 生成随机字符串的方法
- NSNotificationCenter addObserverForName 的释放
- Golang的...
- fopen 文本文件与二进制文件区别
- 根据不规则效果图布局方法
- SpringMVC 1(SpringMVC的结构图,Hello 的案例)
- 公钥私钥及ssh公钥无密码登录
- MySQL——常用SQL优化(一)
- Mybatis的二级缓存配置
- JVM学习笔记(五):根据字节码指令介绍方法执行流程
- php 截取某个字符之前的字符串