在这篇博文中,你将通过实例了解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()方法来做转换。
如果你喜欢这篇文章,请点赞并分享。