Go-Array mit Typalias umwandeln

王林
Freigeben: 2024-02-12 10:57:08
nach vorne
540 Leute haben es durchsucht

使用类型别名强制转换 go 数组

In der Go-Sprache ist das Umwandeln von Arrays mithilfe von Typaliasen ein üblicher Vorgang. Typaliase erstellen einen neuen Namen für einen vorhandenen Typ, um die Typkonvertierung zu erleichtern. Durch die Verwendung von Typaliasen können wir ein Array in ein Array eines anderen Typs konvertieren. Dieser Konvertierungsvorgang ist in der Go-Sprache sehr einfach und kann die Lesbarkeit und Wartbarkeit des Codes effektiv verbessern. In diesem Artikel stellen wir vor, wie man ein Go-Array mithilfe von Typaliasen umwandelt, und stellen einige Beispiele bereit, um den Lesern ein besseres Verständnis dieses Konzepts zu erleichtern.

Frageninhalt

Angenommen, ich habe einen definierten Typ bytes, der ein Byte-Array ist, wie unten gezeigt. Gibt es eine einfache Möglichkeit, ein Array von Byte-Arrays in ein Byte-Array umzuwandeln oder umgekehrt?

package main

type Bytes []byte

func main() {
    x := make([][]byte, 3)
    y := ([]Bytes)(x)
}
Nach dem Login kopieren

Workaround

Nein, leider erlaubt go keine direkte Konvertierung zwischen verschiedenen Typen, auch wenn es sich um Aliase handelt. Beim Aliasing handelt es sich eher darum, einem vorhandenen Typ einen neuen Namen zu geben, es bietet jedoch keine Form der automatischen Konvertierung.

Sie müssen manuell über [][]Byte iterieren und jedes []Byte in den Typ Bytes konvertieren.

Die spezifische Betriebsmethode ist wie folgt:

package main

import "fmt"

type Bytes []byte

func main() {
    x := make([][]byte, 3)
    // Initializing byte slices for demonstration purposes
    for i := range x {
        x[i] = []byte{byte(i), byte(i+1)}
    }

    y := make([]Bytes, len(x))
    for i, v := range x {
        y[i] = Bytes(v)
    }

    fmt.Println("Hello, 世界", y)
}
Nach dem Login kopieren

Dieser Code iteriert manuell x, wandelt jedes []Byte in ein Byte um und platziert es an der entsprechenden Position in y.

Das obige ist der detaillierte Inhalt vonGo-Array mit Typalias umwandeln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:stackoverflow.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage