2017-05-02 7 views
0

Given erklärt eine Funktion alsIst es möglich, variadic Funktionen in go "partially applicate"?

func foo(bars ...string) { 
    // ... 
} 

ich dies wie so nennen möchte:

bar1 := "whiskey bar" 
rest := []string{"vodka bar", "wine bar"} 
foo(bar1, rest...) 

aber nicht kompiliert; die letzte Zeile Fehler mit dieser Nachricht:

have (string, []string...) 
want (...[]string) 

Gibt es eine Möglichkeit ich eine variadische Funktion erklären kann, so dass es mit den beiden Null oder mehreren Parametern aufgerufen werden können, die Werte sind, und null oder einem Array von Werten (bei das Ende)?

+0

Leider gibt es keinen Weg, der beide Ihre Bedingungen erfüllen würde, das Beste, was Sie tun können, denke ich, ist etwa so: 'foo (append ([] string {bar1}, Ruhe ...) ...) '. – mkopriva

+1

Schauen Sie sich auch diese [so antworten] (http://stackoverflow.com/a/28626170/965900). – mkopriva

+0

Auch verwandt: [Ist es möglich, kompilieren Zeit Fehler mit benutzerdefinierten Bibliothek in Golang?] (Http://stackoverflow.com/questions/37270743/is-it-possible-to-trigger-compile-time-error-with -benutzerdefinierte-Bibliothek-in-Golang/37271129 # 37271129) – icza

Antwort

Verwandte Themen