Conversión de una variable de string en tipo booleano, entero o flotante en Golang

Se necesitan varios tipos de conversiones de strings al realizar tareas en Golang. El paquete strconv se importa para realizar conversiones hacia y desde strings.

Conversión de string a booleana

ParseBool se usa para convertir una string en un valor booleano. Acepta 1, t, T, TRUE, true, True como verdadero y 0, f, F, FALSE, false, False como falso . Cualquier otro valor devuelve un error y mostrará el valor como falso.

Ejemplo:

// Golang program to convert a string
// into Boolean data type
  
package main
  
import (
    "fmt"
    "reflect"
    "strconv"
)
  
func main() {
  
    str := "GeeksforGeeks"
  
    fmt.Println("Before :", reflect.TypeOf(str))
    fmt.Println("String value is: ", str)
    b, _ := strconv.ParseBool(str)
    fmt.Println("After :", reflect.TypeOf(b))
    fmt.Println("Boolean value is: ", b, "\n")
  
    str1 := "t"
  
    fmt.Println("Before :", reflect.TypeOf(str1))
    fmt.Println("String value is: ", str1)
    b1, _ := strconv.ParseBool(str1)
    fmt.Println("After :", reflect.TypeOf(b1))
    fmt.Println("Boolean value is: ", b1, "\n")
  
    str2 := "0"
  
    fmt.Println("Before :", reflect.TypeOf(str2))
    fmt.Println("String value is: ", str2)
    b2, _ := strconv.ParseBool(str2)
    fmt.Println("After :", reflect.TypeOf(b2))
    fmt.Println("Boolean value is: ", b2, "\n")
  
}

Producción:

Before : string
String value is:  GeeksforGeeks
After : bool
Boolean value is:  false 

Before : string
String value is:  t
After : bool
Boolean value is:  true 

Before : string
String value is:  0
After : bool
Boolean value is:  false 

Conversión de string a entero

La función ParseInt se utiliza para convertir una string en un valor entero. Interpreta una string en la base dada (0, 2 a 36) y tamaño de bits (0 a 64) y devuelve el valor correspondiente.

Ejemplo:

// Golang program to convert String 
// into Integer Data type
package main
  
import (
    "fmt"
    "reflect"
    "strconv"
)
  
func main() {
  
    str := "GeeksforGeeks"
  
    fmt.Println("Before :", reflect.TypeOf(str))
    fmt.Println("String value is: ", str)
    i, _ := strconv.ParseInt(str, 10, 64)
    fmt.Println("After :", reflect.TypeOf(i))
    fmt.Println("Integer value is: ", i, "\n")
  
    str1 := "100"
  
    fmt.Println("Before :", reflect.TypeOf(str1))
    fmt.Println("String value is: ", str1)
    i1, _ := strconv.ParseInt(str1, 10, 64)
    fmt.Println("After :", reflect.TypeOf(i1))
    fmt.Println("Integer value is: ", i1, "\n")
  
}

Producción:

Before : string
String value is:  GeeksforGeeks
After : int64
Integer value is:  0 

Before : string
String value is:  100
After : int64
Integer value is:  100 

Conversión de string a flotante

ParseFloat se usa para convertir la string en tipo flotante con la precisión especificada por bitSize: 32 para float32 o 64 para float64. Cuando bitSize=32, el resultado aún tiene el tipo float64, pero será convertible a float32 sin cambiar su valor.

Ejemplo:

// Golang program to convert
// String into Float Data type
package main
  
import (
    "fmt"
    "reflect"
    "strconv"
)
  
func main() {
  
    str := "3.1415926535"
  
    fmt.Println("Before :", reflect.TypeOf(str))
    fmt.Println("String value is: ", str)
    f, _ := strconv.ParseFloat(str, 64)
    fmt.Println("After :", reflect.TypeOf(f))
    fmt.Println("Float value is: ", f, "\n")
  
    str1 := "3.1415926535"
  
    fmt.Println("Before :", reflect.TypeOf(str1))
    fmt.Println("String value is: ", str1)
    f1, _ := strconv.ParseFloat(str1, 32)
    fmt.Println("After :", reflect.TypeOf(f1))
    fmt.Println("Float value is: ", f1, "\n")
  
}

Producción:

Before : string
String value is:  3.1415926535
After : float64
Float value is:  3.1415926535 

Before : string
String value is:  3.1415926535
After : float64
Float value is:  3.1415927410125732 

Publicación traducida automáticamente

Artículo escrito por prakhar7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *