千家信息网

如何使用Go中三个点

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"如何使用Go中三个点",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用Go中三个点"吧!'…' 其实是go的一种语法糖。它的第一个用
千家信息网最后更新 2026年11月01日如何使用Go中三个点

本篇内容主要讲解"如何使用Go中三个点",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用Go中三个点"吧!

'…' 其实是go的一种语法糖。
它的第一个用法主要是用于函数有多个不定参数的情况,可以接受多个不确定数量的参数。
第二个用法是slice可以被打散进行传递。

实例:

package main import (        "fmt") func main(){    name(1,2,3,4,5,6,7,8,9) //多个不确定数量的参数        var strss= []string{        "qwr",        "234",        "yui",        "cvbc",    }    test1(strss...) //切片被打散传入 strss... 等同于 "qwr","234","yui","cvbc"} func name(args ...int) {//可以接受任意个int参数    for _, v:= range args{        fmt.Println(v)    }} func test1(args ...string) { //可以接受任意个string参数    for _, v:= range args{        fmt.Println(v)    }}

下面看下Go中三个点(...)用法,具体内容如下所示:

众所周知,Go语言是严格类型语言,而开发的时候又遇到传入参数不定的情况,怎么办?

这里的三个点(…),就给我们编程人员带来很大的灵活性,具体如下

在Golang中,三个点一共会用在四个地方(话说三个点的官方说法是什么?):

代码如下:

package main import (    "fmt"    "log") func main() {    //multiParam 可以接受可变数量的参数     names := []string{"jerry", "herry"}     //在数组文字中,...符号指定的长度等于文字中元素的数量。    stooges := [...]string{"Moe", "Larry", "Curly"}    stoogxs := []string{"Moe", "Larry", "Curly"}     strParam("jerry", "herry")    strParam(names...)     //通过append合并两个slice    stoogxs = append(stoogxs, names...)    fmt.Println(stoogxs)     //标识数组元素个数,这里,...意味着数组的元素个数    log.Println(len(stooges))     nums := []int{4, 5, 6}    stoogns := [...]int{4, 5, 6}     intParam(1, 2, 3)    intParam(nums...)     //标识数组元素个数,这里,...意味着数组的元素个数    log.Println(len(stoogns))} func strParam(args ...string) {    //接受的参数放在args数组中    for _, e := range args {        log.Println(e)    }} func intParam(args ...int) {    res := 0    for _, n := range args {        res += n    }    log.Println(res) }

变长的函数参数

如果最后一个函数参数的类型的是...T,那么在调用这个函数的时候,我们可以在参数列表的最后使用若干个类型为T的参数。这里,...T在函数内部的类型实际是[]T.

func intParam(args ...int) {    res := 0    for _, n := range args {        res += n    }    log.Println(res)}

调用拥有变长参数列表的函数

上面调用Sum函数时,是将变长参数分开写的。如果我们有一个slice,那么我们调用时不必将slice拆开再调用,直接在slice后跟...即可:

nums := []int{4, 5, 6}intParam(nums...)

标识数组元素个数

stooges := [...]string{"Moe", "Larry", "Curly"} // len(stooges) == 3

这里,...意味着数组的元素个数:

Go命令行中的通配符

描述包文件的通配符。
在这个例子中,会单元测试当前目录和所有子目录的所有包:

go test ./...

到此,相信大家对"如何使用Go中三个点"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0