Heim  >  Artikel  >  Backend-Entwicklung  >  Entdecken Sie die Konvertierung von Golang-Arrays

Entdecken Sie die Konvertierung von Golang-Arrays

PHPz
PHPzOriginal
2023-04-05 13:48:13553Durchsuche

In Golang ist ein Array eine Sammlung von Elementen desselben Typs. Die Länge eines Arrays wird bei seiner Erstellung bestimmt und kann nach der Festlegung nicht mehr geändert werden. Arrays in Golang sind Werttypen. Wenn also ein Array einer Variablen zugewiesen wird, enthält die Variable eine Kopie des gesamten Arrays. In diesem Artikel werden wir Array-Konvertierungstechniken untersuchen, d. h. wie man ein Array in ein anderes konvertiert.

Grundlagen der Array-Konvertierung

In Golang gibt es zwei Arten der Array-Konvertierung:

1. Konvertierung zwischen Arrays mit demselben Format, aber unterschiedlichen Typen (zum Beispiel: int-Array und float64-Array).

2. Konvertierung zwischen Arrays mit unterschiedlichen Formaten und Typen (zum Beispiel: int-Array und String-Array).

Im ersten Fall ist die Array-Konvertierung sehr einfach. Verwenden Sie einfach den Typkonvertierungsoperator, um ein Array eines Typs in ein Array eines anderen Typs zu konvertieren. Zum Beispiel:

func main() {
    intArr := [3]int{1, 2, 3}
    var floatArr [3]float64
    
    for i, v := range intArr {
        floatArr[i] = float64(v) //类型转换
    }
    
    fmt.Println(floatArr) //输出 [1.0 2.0 3.0]
}

Der obige Code konvertiert das int-Typ-Array intArr in das float64-Typ-Array floatArr. Sie müssen nur den int-Typ in den float64-Typ konvertieren.

Im zweiten Fall sind die technischen Anforderungen für die Array-Konvertierung höher. Weil es darum geht, verschiedene Datentypen in unterschiedliche Datentypen umzuwandeln. In diesem Fall müssen wir auf andere Transformationstechniken wie Slicing, Mapping usw. zurückgreifen.

1. Slice-Konvertierung

Slice ist eine der am häufigsten verwendeten Datenstrukturen in Golang, da sie als veränderbares Array verwendet werden kann. In diesem Fall können wir Slicing verwenden, um Arrays mit unterschiedlichen Formaten zu konvertieren. Wir müssen jedes Array-Element zu einem Slice hinzufügen und das Slice dann in ein Array in einem anderen Format konvertieren.

func main() {
    intArr := []int{1, 2, 3}
    var floatArr []float64
    
    for _, v := range intArr {
        floatArr = append(floatArr, float64(v)) //转换并添加到切片中
    }
    
    fmt.Println(floatArr) //[1.0 2.0 3.0]
    fmt.Println(reflect.TypeOf(floatArr).Kind()) //输出: slice -- 切片类型
}

Der obige Code konvertiert den int-Typ-Slice intArr in den float64-Typ-Slice floatArr. Sie müssen nur den int-Typ in den float64-Typ konvertieren. Hier wird die Funktion append() verwendet, um die konvertierten Elemente zum Slice hinzuzufügen. Abschließend wird mit der Funktion „reflect.TypeOf()“ überprüft, ob der Typ von floatArr vom Slice-Typ ist.

2. Mapping-Konvertierung

Zusätzlich zur Verwendung von Slices können wir auch Mapping verwenden, um eine Array-Konvertierung durchzuführen. Für diese Methode müssen wir eine Schlüssel-Wert-Zuordnung definieren, jedes Element im Eingabearray in einen Wert in einem angegebenen Format konvertieren und dieses Schlüssel-Wert-Paar zur Zuordnung hinzufügen.

func main() {
    intArr := [3]int{1, 2, 3}
    var floatArr [3]float64
    
    conversionMap := map[int]float64{
        0: 1.0,
        1: 2.0,
        2: 3.0,
    }
    
    for i, v := range intArr {
        floatArr[i] = conversionMap[v] //转换并添加到映射中
    }
    
    fmt.Println(floatArr) //[1.0 2.0 3.0]
}

Im obigen Code definieren wir ein Schlüssel-Wert-Paar, das „conversionMap“ zuordnet, um Array-Elemente vom Typ int Werten vom Typ float64 zuzuordnen. Mit dieser Zuordnung können wir dann das int-Array in ein float64-Array konvertieren. Beachten Sie, dass wir hier nur den Wert des int-Arrays konvertiert haben, sodass die Länge des int-Arrays mit der Länge des float64-Arrays übereinstimmen muss.

Zusammenfassung

In diesem Artikel haben wir Array-Konvertierungstechniken untersucht: Konvertierung zwischen Arrays desselben Formats, aber unterschiedlicher Typen und Konvertierung zwischen Arrays unterschiedlicher Formate und Typen. Unter diesen ist der erste Fall sehr einfach: Wir müssen nur den Typkonvertierungsoperator verwenden, um ein Array eines Typs in ein Array eines anderen Typs umzuwandeln.

Für den zweiten Fall stellen wir zwei Methoden vor: Slicing-Transformation und Mapping-Transformation. Wenn wir Slices zur Konvertierung verwenden, müssen wir jedes Array-Element zu einem Slice hinzufügen und das Slice dann in ein Array in einem anderen Format konvertieren. Wenn wir Mapping für die Konvertierung verwenden, müssen wir ein Schlüssel-Wert-Paar-Mapping definieren, jedes Element im Eingabearray einem Wert in einem angegebenen Format zuordnen und dieses Schlüssel-Wert-Paar zum Mapping hinzufügen.

Das obige ist der detaillierte Inhalt vonEntdecken Sie die Konvertierung von Golang-Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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