Golang Convert Interface in String

Sheeraz Gul 20 Juni 2023
  1. Golang-Schnittstelle zu String
  2. Verwenden Sie fmt.Sprintf, um die Schnittstelle in Golang in einen String umzuwandeln
  3. Verwenden Sie Type Casting, um die Schnittstelle in Golang in eine Zeichenfolge zu konvertieren
Golang Convert Interface in String

Dieses Tutorial zeigt, wie Sie die Schnittstelle in Golang in eine Zeichenfolge konvertieren.

Golang-Schnittstelle zu String

Die Schnittstelle speichert den Satz der Methode ohne Implementierung in Golang, wobei Methoden in der Schnittstelle keinen Methodenkörper haben. In Golang kann die Schnittstelle leer sein und ihr kann per Variablendeklaration ein Wert zugewiesen werden.

Manchmal ist es erforderlich, die Schnittstelle in Golang in einen String umzuwandeln. Es gibt zwei Methoden, um die Schnittstelle in Golang in einen String umzuwandeln.

Verwenden Sie fmt.Sprintf, um die Schnittstelle in Golang in einen String umzuwandeln

Die Methode fmt.Sprintf kann in Golang alles in einen String umwandeln. Diese Methode kann auch eine Schnittstelle in eine Zeichenfolge in Golang konvertieren.

Sehen wir uns ein Beispiel an:

package main

import "fmt"

func main() {
    //Interface with a string value
    var Demo interface{} = "Delftstack"
    resultString := fmt.Sprintf("%v", Demo)
    fmt.Println(resultString)

    //Interface with an array value
    var Demo1 interface{} = []int{10, 20, 30, 40, 50}
    resultString1 := fmt.Sprintf("%v", Demo1)
    fmt.Println(resultString1)
}

Der obige Code konvertiert die Schnittstelle mit Wertstring und Array in einen String. Siehe die Ausgabe:

Delftstack
[10 20 30 40 50]

Program exited.

Aber was ist, wenn die Schnittstelle ein Array mit mehreren Werten ist? In diesem Fall können wir ein leeres Slice der Länge der Schnittstelle erstellen und eine for-Schleife verwenden, um jeden Wert in einen String umzuwandeln und sie zu verwenden oder in das Slice zu stecken.

Siehe Beispiel:

package main

import "fmt"

func main() {
    Demo := []interface{}{
        "Delftstack",
        10, 20, 30,
        []int{6, 5, 9},
        struct{ A, B int }{10, 20},
    }

    // Print the interface content
    fmt.Println(Demo)

    // Print the original type before conversion
    fmt.Printf("Original Type of interface: %T\n", Demo)

    // now create an empty slice based on the length of the Interface
    emptyslice := make([]string, len(Demo))

    // Iterate over the Interface and convert values to string
    for index, value := range Demo {
        emptyslice[index] = fmt.Sprint(value)
    }

    // Print the content of the slice
    fmt.Println(emptyslice)

    // Print the type after conversion
    fmt.Printf("The new type is: %T\n", emptyslice)
    fmt.Printf("%q\n", emptyslice)
}

Der obige Code konvertiert die Schnittstelle mit mehreren Werten in Zeichenfolgen. Siehe Ausgabe:

[Delftstack 10 20 30 [6 5 9] {10 20}]
Original Type of interface: []interface {}
[Delftstack 10 20 30 [6 5 9] {10 20}]
The new type is: []string
["Delftstack" "10" "20" "30" "[6 5 9]" "{10 20}"]

Program exited.

Verwenden Sie Type Casting, um die Schnittstelle in Golang in eine Zeichenfolge zu konvertieren

Type Casting ist auch in Golang möglich. Wir können eine Schnittstelle in einen String typisieren; Der Prozess ist sehr einfach, wenn die Syntax .(string) verwendet wird, um alles in eine Zeichenfolge umzuwandeln.

Versuchen wir es an einem Beispiel:

package main

import "fmt"

func main() {
    //Interface with a string value
    var Demo interface{} = "Delftstack"
    resultString := Demo.(string)
    fmt.Println(resultString)

}

In diesem Fall können wir die Schnittstelle nur mit einem Zeichenfolgenwert in eine Zeichenfolge umwandeln. Die Schnittstelle mit Array-Wert kann nicht typgewandelt werden.

Siehe die Ausgabe:

Delftstack

Program exited.
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Verwandter Artikel - Go String