Golang Convert Interface in String
- Golang-Schnittstelle zu String
-
Verwenden Sie
fmt.Sprintf
, um die Schnittstelle in Golang in einen String umzuwandeln - Verwenden Sie Type Casting, um die Schnittstelle in Golang in eine Zeichenfolge zu konvertieren
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 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