📌  相关文章
📜  在 Golang 中将字符串变量转换为 Boolean、Integer 或 Float 类型

📅  最后修改于: 2021-10-25 02:35:32             🧑  作者: Mango

在 Golang 中执行任务时需要进行各种类型的字符串转换。导入包strconv以执行与字符串 的转换。

字符串到布尔转换

ParseBool 用于将字符串转换为布尔值。它接受 1, t, T, TRUE, true, True 作为true和 0, f, F, FALSE, false, False 作为false 。任何其他值都会返回错误并将该值显示为 false。

例子:

// 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")
  
}

输出:

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 

字符串到整数的转换

ParseInt函数用于将字符串转换为整数值。它以给定的基数(0、2 到 36)和位大小(0 到 64)解释字符串并返回相应的值。

例子:

// 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")
  
}

输出:

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

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

字符串到浮点数的转换

ParseFloat 用于将字符串转换为浮点类型,精度由 bitSize 指定:float32 为 32,float64 为 64。当 bitSize=32 时,结果仍然是 float64 类型,但它可以转换为 float32 而不改变其值。

例子:

// 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")
  
}

输出:

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