知识卡片

可变长参数本质是切片语法糖

专业/工作 · 1372.b.2

内容

像 fmt.Println、append 这类可以接收任意个数参数的函数,靠的是在最后一个参数类型前加省略 号(…)声明为可变长参数——函数内部拿到的其实就是一个普通切片,可以像操作切片一样遍历它。发散:可变长参数没有引入 任何新的底层机制,它只是给”函数接收一个切片参数”这件事套了一层更顺手的调用语法,理解了 切片,可变长参数就只是一层记号上的糖衣,而不是一个需要单独消化的新概念。

参考来源

- 位置:《Head First Go语言程序设计》第6章《追加的问题:切片》(源文件:_epub-src/index_split_001.html) - 结论依据:原文在该章节围绕“像fmt.Println、append这类可以接收任意个数参数的函数,靠的是在最后一个参数类型前加省略号(..…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。 - 原始内容:的average目录平级。在其中 创建一个main.go文件。 然后把下面的代码输入main.go中。它只包含fmt包和os包,并且把 os.Args切片传递给fmt.Println。 让我们试试。从你的终端或者命令提示行执行此命令来编译和安装 这个程序: go install github.com/headfirstgo/average…