In the Go language,
[]string
is a string array
and we also use ...string
as a parameter.
What is the difference?
Functi
[]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