What is the difference between []string and …string in golang?

前端 未结 4 494
醉话见心
醉话见心 2021-01-30 09:44

In the Go language,

[]string is a string array

and we also use ...string as a parameter.

What is the difference?

Functi

4条回答
  •  借酒劲吻你
    2021-01-30 10:35

    []string is a string array

    Technically it's a slice that references an underlying array

    and we also use ...string as a parameter.

    What is the difference?

    With respect to the structure, nothing really. The data type resulting from both syntax is the same.

    The ... parameter syntax makes a variadic parameter. It will accept zero or more string arguments, and reference them as a slice.

    With respect to calling f, you can pass a slice of strings into the variadic parameter with the following syntax:

    func f(args ...string) {
        fmt.Println(len(args))
    }
    
    
    args := []string{"a", "b"}
    
    f(args...)
    

    This syntax is available for either the slice built using the literal syntax, or the slice representing the variadic parameter (since there's really no difference between them).

    http://play.golang.org/p/QWmzgIWpF8

提交回复
热议问题