首页后端开发其他后端知识Go中三个点的使用表示什么意思,作用是什么

Go中三个点的使用表示什么意思,作用是什么

时间2024-03-26 08:30:03发布访客分类其他后端知识浏览650
导读:这篇文章给大家介绍了“Go中三个点的使用表示什么意思,作用是什么”的相关知识,讲解详细,步骤过程清晰,对大家进一步学习和理解“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中三个点的使用表示什么意思,作用是什么”的文章就介绍到这了,感谢各位的阅读,更多相关Go中三个点的使用表示什么意思,作用是什么内容,欢迎关注网络资讯频道,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Go中三个点的使用表示什么意思,作用是什么
本文地址: https://pptw.com/jishu/653380.html
PHP如何调试代码?常用的调试方法有哪些? PHP里fopen生成文件出现中文乱码怎么办?

游客 回复需填写必要信息