Golang ...T 的几种用法

一根薯条 · · 807 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

在Go中,经常可以见到 …T 能概括一下什么场合会用到…T吗

  1. 用在函数参数中

    若函数的最后一个参数是…T类型,这个参数可传入任意个T类型的参数,在函数中…T的类型为[]T.

    在这个例子函数中,你可以这样使用这个函数Sum(1,2,3)orSum().

    func Sum(nums ...int) int {
        res := 0
        for _, n := range nums {
            res += n
        }
        return res
    }
    
  1. 用在解序列

    可以传入一个slice,然后用…解开它,注意在这里没有新的slice被创造。在这个例子函数中,我们把slice传入Sum函数

    primes := []int{2, 3, 5, 7}
    fmt.Println(Sum(primes...)) // 17
    

    在append函数的注释中,同样可以看到...

    //It is therefore necessary to store the
    // result of append, often in the variable holding the slice itself:
    //   slice = append(slice, elem1, elem2)
    //   slice = append(slice, anotherSlice...)
    
  1. 用在数组中

    在一个数组的声明中,...相当于指定一个和元素个数相同的长度

    stooges := [...]string{"Moe", "Larry", "Curly"} // len(stooges) == 3
    
  1. 用在Go命令中

    在go命令中,...可以作为一个列出所有包名的通配符

    这个命令列出当前和子目录中所有的包

    go test ./...
    

参考:
three-dots-ellipsis


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:一根薯条

查看原文:Golang ...T 的几种用法

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:1006366459

807 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传