Golang Convertir interfaz a cadena
- Interfaz de Golang a cadena
-
Use
fmt.Sprintf
para convertir la interfaz a cadena en Golang - Utilice la conversión de tipos para convertir la interfaz en una cadena en Golang
Este tutorial demuestra cómo convertir la interfaz a una cadena en Golang.
Interfaz de Golang a cadena
La interfaz almacena el conjunto del método sin implementación en Golang, donde los métodos de la interfaz no tendrán el cuerpo del método. En Golang, la interfaz puede estar vacía y se le puede asignar un valor mediante declaración de variable.
A veces es necesario convertir la interfaz a cadena en Golang. Hay dos métodos para convertir la interfaz en una cadena en Golang.
Use fmt.Sprintf
para convertir la interfaz a cadena en Golang
El método fmt.Sprintf
puede convertir cualquier cosa en una cadena en Golang. Este método también puede convertir una interfaz en una cadena en Golang.
Veamos un ejemplo:
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)
}
El código anterior convertirá la interfaz con la cadena de valor y la matriz en una cadena. Ver la salida:
Delftstack
[10 20 30 40 50]
Program exited.
Pero, ¿y si la interfaz es una matriz con múltiples valores? En ese caso, podemos crear una porción vacía de la longitud de la interfaz y usar un bucle for
para convertir cada valor en una cadena y usarlos o ponerlos en la porción.
Ver ejemplo:
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)
}
El código anterior convertirá la interfaz con múltiples valores en cadenas. Ver salida:
[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.
Utilice la conversión de tipos para convertir la interfaz en una cadena en Golang
La conversión de tipos también es posible en Golang. Podemos escribir una interfaz a una cadena; el proceso es muy simple donde la sintaxis .(cadena)
se usa para escribir cualquier cosa en una cadena.
Probemos un ejemplo:
package main
import "fmt"
func main() {
//Interface with a string value
var Demo interface{} = "Delftstack"
resultString := Demo.(string)
fmt.Println(resultString)
}
En este caso, solo podemos escribir la interfaz con un valor de cadena a una cadena. La interfaz con valor de matriz no se puede convertir.
Ver la salida:
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