Heim > Backend-Entwicklung > Golang > Wie übergebe ich in Go ein String-Slice an einen leeren variadischen Schnittstellenparameter?

Wie übergebe ich in Go ein String-Slice an einen leeren variadischen Schnittstellenparameter?

Patricia Arquette
Freigeben: 2024-11-06 12:10:02
Original
252 Leute haben es durchsucht

How to Pass a String Slice to an Empty Interface Variadic Parameter in Go?

Übergeben Sie ein String-Slice an einen variadischen Parameter einer leeren Schnittstelle

Frage:

Das Gosqlite Das Paket stellt eine Methode mit einem variadischen Parameter vom Typ leere Schnittstelle bereit. Beim Versuch, einen String-Slice als Parameter zu übergeben, generiert der Compiler jedoch einen Fehler. Gibt es dafür eine Möglichkeit oder eine effizientere Methode zum Konvertieren des Slice in eine leere Schnittstelle?

Antwort:

Es ist nicht möglich, ein [ direkt zu übergeben ]string zu einem ...interface{}-Parameter. Die Konvertierung erfordert lineare Zeit, was zu erheblichen versteckten Kosten führen kann.

Stattdessen können Sie eine separate Funktion erstellen, die einen []String akzeptiert und die entsprechende []Schnittstelle{} zurückgibt. Alternativ können Sie Reflektion verwenden, allerdings ist dies mit einem Laufzeitaufwand verbunden. Hier ist ein Beispiel für die Verwendung von Reflektion:

<code class="go">valuesVal := reflect.ValueOf(values)
for i := range values2 { values2[i] = valuesVal.Index(i).Interface() } </code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie übergebe ich in Go ein String-Slice an einen leeren variadischen Schnittstellenparameter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage