变参 本质上就是一个切片。只能接收一个或多个同类型参数,且 必须放在参数列表的 尾部。

func test(s string, a ...int) {fmt.Printf("%T, %v\n", a, a) // 显示类型 和 值
}func main() {test("abc", 1, 2, 3, 4)
}

输出:

[]int, [1, 2, 3, 4]

将切片作为变参时,须进行 展开操作(后面加“...”)。如果是数组,先将其转换为切片。

func test(a ...int) {fmt.Println(a)
}func main() {a := [3]int{10, 20, 30}test(a[:]...)
}

既然变参是切片,那么参数复制的仅是切片自身,并不包括底层数组,也因此可修改原数据。如果需要,可以用内置函数 copy() 复制底层数据。

func test(a ...int) {for i := range a {a[i] += 100}
}func main() {a := []int{10, 20, 30}test(a...)fmt.Println(a)
}

输出:

[110 120 130]

[Go] 函数/方法 的 变参相关推荐

  1. js中函数,方法,事件对比区分,什么是方法,什么是函数

    微信小程序开发交流qq群   581478349    承接微信小程序开发.扫码加微信. 正文: 简单的理解:函数是运行在本地的,方法是公用的.  事件是开关,通过某某事件触发某个函数 通常命名规范 ...

  2. C语言题解:用二分法思想求解10个元素中某个元素的下标(包含函数方法)

    算法思想:用左下标和右下标之和除二得出中间下标值,再通过与所求元素比较,缩小范围,最后实现左下右下标相等,即找出所求下标.代码实现如下: #include <stdio.h> int ma ...

  3. Python列表函数方法

    Python列表函数&方法 Python包含以下函数: 序号 函数 1 cmp(list1, list2) 比较两个列表的元素 2 len(list) 列表元素个数 3 max(list) 返 ...

  4. 全面讲解Python列表数组(三)列表数组类型的内置函数方法

    列表数组类型的内置函数方法 这里有一个列表 list1[1,2,3,4,1,5,6,7,8,9] 一, count() list1.count(1) 2 作用是计算列表一个元素出现的次数; 二. in ...

  5. thinkphp模版调用函数方法

    原文:thinkphp模版调用函数方法 {变量|函数1|函数2|函数3=参数1,参数2,参数3,###} ###为第4个参数,代表变量替换为第4个参数 举例: {$username|substr=0, ...

  6. mysql存储过程大于小于_mysql5.0存储过程操作符知识_函数方法[Mysql学习]

    mysql存储过程基本函数 一.字符串类 CHARSET(str) //返回字串字符集 CONCAT (string2  [,... ]) //连接字串 INSTR (string ,substrin ...

  7. [JavaWeb-JavaScript]JavaScript_Function函数(方法)对象

    Function:函数(方法)对象 1. 创建:1. var fun = new Function(形式参数列表,方法体); //忘掉吧2. function 方法名称(形式参数列表){方法体}3. ...

  8. js Date 函数方法

    转载自   js Date 函数方法 var myDate = new Date();myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取 ...

  9. Python import导入模块与函数方法 Python语言基础【1】

    1 Python的语言基础 导入模块 在Python代码中导入模块需要使用 import语句语法结果如下 import module_name 使用模块中函数的语法如下 module_name.fun ...

最新文章

  1. 7、Power Query-合并查询
  2. maven+jenkins+sonar集成搭建
  3. [js] ajax请求地址只支持http/https吗?能做到让它支持rtmp://等其它自定义协议吗 ?
  4. 分享Spring Cloud分布式微服务架构图
  5. java并发之Future与Callable使用
  6. jq监听input type=file发生改变,即选择文件,并获取文件名称
  7. php文件通常包含和一些,php函数导入与文件包含:include() 和 require() 语句的区别...
  8. 用c语言编写小于n的所有素数,关于求N以内素数的一点小问题(N小于一亿)
  9. dubbo快速实战(非最佳配置,演示用)
  10. 表达式求值(栈方法/C++语言描述)(一)
  11. Rainmeter,让你的桌面更精彩~
  12. 串口服务器如何设置485信号,串口服务器485 设置
  13. 当笑神姜涛遇上尼古拉斯赵四,低俗加上恶俗的结果是否就是封杀?
  14. struct和typedef struct的用法和区别
  15. [Unity] 制作游戏 小球爱碰撞
  16. Python 闯关之路一(语法基础)
  17. Java里面是先算乘除后算加减,JAVA基础之基本加减乘除计算
  18. ams1117 lm317 对比_浅谈LM1117输入电流和输出电流的差异
  19. JZ2440学习笔记
  20. 智慧煤矿技术理论篇1-5G与WiFi6技术

热门文章

  1. Struts学习之自定义拦截器
  2. 程序员面试宝典 笔记 第七章
  3. idea建springcloud项目_idea创建springcloud项目图文教程(EurekaServer注册中心)
  4. 【docker】关于docker 中 镜像、容器的关系理解
  5. 学习ASP.NET Core Razor 编程系列六——数据库初始化
  6. 使用exp导出报错EXP-00091
  7. Linux学习笔记 第三课 目录结构及简单命令
  8. 鸟哥的私房菜-基础篇学习-文件与目录管理-2-1
  9. 851. 喧闹和富有
  10. braft中AppendEntries逻辑