Go 三个点(...)用法
时间:2022-07-25
本文章向大家介绍Go 三个点(...)用法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
众所周知,Go语言是严格类型语言,而开发的时候又遇到传入参数不定的情况,怎么办?
这里的三个点(...),就给我们编程人员带来很大的灵活性,具体如下
函数可变数量参数
可参考https://github.com/guyan0319/...
示例
package main
import "fmt"
func main() {
//multiParam 可以接受可变数量的参数
multiParam("jerry", "herry")
names := []string{"jerry", "herry"}
multiParam(names...)
}
func multiParam(args ...string) {
//接受的参数放在args数组中
for _, e := range args {
fmt.Println(e)
}
}
需要注意的是,可变参数是函数最右边的参数,普通参数放在左侧,可以0到n个。如
package main
import "fmt"
func main() {
//multiParam 可以接受可变数量的参数
multiParam("jerry", 1)
multiParam("php", 1, 2)
}
func multiParam(name string, args ...int) {
fmt.Println(name)
//接受的参数放在args数组中
for _, e := range args {
fmt.Println(e)
}
}
可变函数的参数
s
如果使用s...
符号解压缩切片,则可以将切片直接传递给可变参数函数。在这种情况下,不会创建新的切片。
示例
package main
import "fmt"
func main() {
//multiParam 可以接受可变数量的参数
names := []string{"jerry", "herry"}
multiParam(names...)
}
func multiParam(args ...string) {
//接受的参数放在args数组中
for _, e := range args {
fmt.Println(e)
}
}
还有一种情况就是通过append合并两个slice,
stooges := []string{"Moe", "Larry", "Curly"}
lang := []string{"php", "golang", "java"}
stooges = append(stooges, lang...)
fmt.Println(stooges)//[Moe Larry Curly php golang java]
数组文字
在数组文字中,...
符号指定的长度等于文字中元素的数量。
stooges := [...]string{"Moe", "Larry", "Curly"}
arr := [...]int{1, 2, 3}
fmt.Println(len(stooges))
fmt.Println(len(arr))
这里...
也可以不用。
go命令
go
描述软件包列表时,命令使用三个点作为通配符。
此命令测试当前目录及其子目录中的所有软件包。
$ go test ./...
参考:
https://yourbasic.org/golang/...
- JavaWeb项目之电话本,两个版本,以及总结反思
- 工作中问题记录
- Java导出数据生成Excel表格
- Layui常见问题
- layui动态设置下拉框数据,根据后台数据设置选中
- BCryptPasswordEncoder加密及判断密码是否相同
- 两个HTML,CSS布局实例
- cors解决Web跨域访问问题
- Java之集合初探(二)Iterator(迭代器),collections,打包/解包(装箱拆箱),泛型(Generic),comparable接口
- IIS中实现HTTPS的自动跳转
- Windows Server下IIS安装PHP+MySql环境
- Python玩机器学习简易教程
- 腾讯云服务器搭建个人博客教程
- Ubuntu下安装Nginx+PHP+MySql环境
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 搞了这么多年终于知道接口和抽象类的应用场景了
- css实现页面加载动画
- 用Dota2“最强”算法PPO完成CarPole和四轴飞行器悬浮任务
- 【pyspark】广播变量のdestroy...
- Flink 参数配置和常见参数调优
- 利用InfluxDB+Grafana搭建Flink on YARN作业监控大屏
- Netty之美--零拷贝
- Netty对ThreadLocal的升级
- 【避坑指南】12.2 新功能优化器统计顾问(Optimizer Statistics Advisor)及常见问题和解决方法
- 初试 Open Service Mesh(OSM)
- K8S 生态周报| runc v1.0-rc92 发布
- 聊聊 Python 面试最常被问到的几种设计模式(上)
- 推荐一套个人文档管理系统。
- OpenCV图像读取(imread) 显示(imshow) 保存(imwrite)的冷知识点
- CodeReview实践-Gerrit自动触发JenkinsCI