On Sun, 21 Oct 2018, at 10:52 PM, Justin Israel wrote: > I was getting an error trying to pass a []string to this elasticsearch > API ctor:> > https://github.com/olivere/elastic/blob/v6.2.11/search_queries_terms_set.go#L26> > > func NewTermsSetQuery(name string, values ...interface{}) > *TermsSetQuery> > And it was failing with "cannot use vals (type []string) as type > []interface {}".> See: https://play.golang.org/p/l5pzqyugM29 > > When I figured out how to satisfy the signature, it reminded me of the > issue others have had with assigning slices of concrete values to > slices of interface values. I get that you can't directly do that > because the memory layout is different. But I was confused as to why > this variadic example can't work as had expected? I guess the variadic > ... instead of seeing []interface{} in the signature threw off my > expectations. I don't really know whats going on under the hood when a > variadic function handles do(mySlice...). Is it exactly the same > issue as a direct argument mapping between []string and []interface{} > function parameters? Yes it's the same issue. Variadic arguments are just syntactic sugar for a slice.
-- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
