Golang 示例: 将字符串转换成布尔值/从布尔值转换成字符串

4,023 阅读3分钟

在这篇博文中,你将通过实例了解Go语言中布尔类型的字符串转换

Golang的字符串和布尔转换

string和bool是Golang中预定义的数据类型。字符串接受一组字符,布尔接受真假值。例如,字符串类型包含值--"true"|"false",布尔类型包含值--true|false。

在Go语言中,字符串转换不会自动发生。我们必须编写一个自定义的手动代码或使用标准包--fmt或strconv来完成。

这篇文章包括以下内容

  • 将字符串转换为布尔值
  • 将布尔值转为字符串

如何在Golang中把字符串转换为布尔值?

在Go语言中,有一种简单的方法可以将字符串转换为布尔值。strconv提供的函数--strconv.ParseBool()函数可以进行字符串到布尔值的转换。ParseBool()函数接收String("true")形式的布尔值并返回一个布尔值。

例如,如果你发送 "true",它返回等效的布尔原始值 "true";如果你发送 "false",返回布尔值 "false"。

以下是函数签名

func ParseBool(str string) (bool, error) 

该函数接受字符串并返回布尔值类型和错误。

如果字符串包含 "1"、"t"、"T"、"true"、"TRUE"、"True" 。它返回布尔值--true,类型为bool,错误--nil
如果字符串包含"", "f", "F", "false", "FALSE", "False", 它返回布尔值-- false,错误--nil

如果一个字符串包含上述两种类型以外的值,它返回布尔值--false,并抛出运行时错误--值:strconv.ParseBool:解析 "123":无效的语法
下面是strconv.ParseBool()函数的一个例子

package main  
  
import (  
 "fmt"  
 "strconv"  
)  
  
func convertStringToBool(str string) {  
 boolValue, err := strconv.ParseBool(str)  
 if err == nil {  
  fmt.Printf("DataType: %T  \n", boolValue) // Display DataType  
  fmt.Println("value - ", boolValue)        // variable value  
 }  
 fmt.Println("error - ", err)  
}  
func main() {  
 convertStringToBool("True")  
 convertStringToBool("T1rue")  
 convertStringToBool("0")  
}  

当上述程序被编译和执行时,它的输出结果如下

DataType: bool  
value -  true  
error -  error -  strconv.ParseBool: parsing "T1rue": invalid syntax  
DataType: bool  
value -  false  
error - 

如何在Golang中把布尔值转换为字符串

在Go语言中,有两种方法将布尔值转换为字符串。一种是使用strconv.FormatBool(bool)函数,另一种是使用fmt.sprint()函数

strconv.FormatBool()函数示例

FormatBool()函数接受布尔值并返回布尔值的字符串格式 下面是FormatBool()方法的一个签名。

func FormatBool(b bool) string 

这个函数接受布尔值 - 真或假。它返回字符串 "true"、"false"。
下面是一个示例程序

func main() {  
  
 convertBooleanToString(true)  
 convertBooleanToString(false)  
  
}  
  
func convertBooleanToString(boolValue bool) {  
 strValue := strconv.FormatBool(boolValue)  
 fmt.Printf("DataType: %T  \n", strValue) // Display DataType  
 fmt.Println("value - ", strValue)        // variable value  
}  

当上述程序被编译时,上述程序的输出是

DataType: string  
value -  true  
DataType: string  
value -  false  

fmt Sprint函数示例

fmt包提供了字符串格式化的功能。Sprint函数接受布尔值或任何值并返回一个字符串。

下面是一个转换的例子

func main() {  
 convertBooleanToString(true)  
 convertBooleanToString(false)  
  
}  
func convertBooleanToString(boolValue bool) {  
 strValue := fmt.Sprint(boolValue)  
 fmt.Printf("DataType: %T  \n", strValue) // Display DataType  
 fmt.Println("value - ", strValue)        // variable value  
}  

上述程序的输出是

DataType: string  
value -  true  
DataType: string  
value -  false  

总结

从性能上看,strconv.FormatBool() 函数比fmt.Sprint() 函数快,所以我选择strconv.FormatBool()方法来做转换。

如果你喜欢这篇文章,请点赞并分享。