Golang 中的 strconv 包常用函数及用法详解
作者:路多辛
strconv 是 Golang 中一个非常常用的包,主要用于字符串和基本数据类型之间的相互转换。本文将详细介绍 strconv 包的常用函数及用法。
strconv.Atoi 和 strconv.Itoa
Atoi 函数用于将字符串转换为 int 类型,Itoa 函数则用于将 int 类型转换为字符串类型。简单使用示例如下:
package main import ( "fmt" "strconv" ) func main() { str := "123" intValue, _ := strconv.Atoi(str) fmt.Printf("str to int: %d\n", intValue) intValue += 1 str = strconv.Itoa(intValue) fmt.Printf("int to str: %s\n", str) }
strconv.Parse 系列函数
strconv.Parse 系列函数用于将字符串解析为指定类型。其中常用的函数有 ParseInt、ParseBool 和 ParseFloat。简单使用示例如下:
package main import ( "fmt" "strconv" ) func main() { // 解析整数 intStr := "123" intValue, _ := strconv.ParseInt(intStr, 10, 64) fmt.Printf("Parsed int value: %d\n", intValue) // 解析布尔值 boolStr := "true" boolValue, _ := strconv.ParseBool(boolStr) fmt.Printf("Parsed bool value: %t\n", boolValue) // 解析浮点数 floatStr := "3.14" floatValue, _ := strconv.ParseFloat(floatStr, 64) fmt.Printf("Parsed float value: %f\n", floatValue) }
strconv.Format 系列函数
strconv.Format 系列函数用于将基本数据类型转换为字符串类型。常用的函数有 FormatInt、FormatBool 和 FormatFloat。简单使用示例如下:
package main import ( "fmt" "strconv" ) func main() { // 格式化整数 intValue := 123 intStr := strconv.FormatInt(int64(intValue), 10) fmt.Printf("Formatted int string: %s\n", intStr) // 格式化布尔值 boolValue := true boolStr := strconv.FormatBool(boolValue) fmt.Printf("Formatted bool string: %s\n", boolStr) // 格式化浮点数 floatValue := 3.14 floatStr := strconv.FormatFloat(floatValue, 'f', -1, 64) fmt.Printf("Formatted float string: %s\n", floatStr) }
strconv.Append 系列函数
strconv.Append 系列函数用于将基本数据类型追加到已存在的字节数组中。常用的函数有 AppendInt、AppendBool 和 AppendFloat。简单使用示例如下:
package main import ( "fmt" "strconv" ) func main() { // 追加整数到字节数组 num1 := 123 byteSlice := []byte("Number: ") byteSlice = strconv.AppendInt(byteSlice, int64(num1), 10) fmt.Printf("Appended int: %s\n", byteSlice) // 追加布尔值到字节数组 boolVal := true byteSlice = []byte("Bool: ") byteSlice = strconv.AppendBool(byteSlice, boolVal) fmt.Printf("Appended bool: %s\n", byteSlice) // 追加浮点数到字节数组 floatVal := 3.14 byteSlice = []byte("Float: ") byteSlice = strconv.AppendFloat(byteSlice, floatVal, 'f', -1, 64) fmt.Printf("Appended float: %s\n", byteSlice) }
strconv.IsPrint 和 strconv.IsGraphic
strconv.IsPrint 函数用于判断给定的 Unicode 字符是否可打印,可打印字符是指那些可以在屏幕上显示的字符。strconv.IsGraphic 函数用于判断给定的 Unicode 字符是否是图形字符,图形字符是指可视化的字符。简单使用示例如下:
package main import ( "fmt" "strconv" ) func main() { chars := []rune{'H', 'e', 'l', '\n', '♥', 127} for _, char := range chars { fmt.Printf("Character: %c, IsPrint: %v\n", char, strconv.IsPrint(char)) fmt.Printf("Character: %c, IsGraphic: %v\n", char, strconv.IsGraphic(char)) } }
strconv.Quote 和 strconv.Unquote 系列函数
strconv.Quote 系列函数用于转义和引用字符串的功能,将字符串转换为可以直接表示的字符串字面值(literal),包括添加转义字符和引号。简单使用示例如下:
package main import ( "fmt" "strconv" ) func main() { str := `路多辛的, "所思所想"!` quoted := strconv.Quote(str) fmt.Println("Quoted: ", quoted) unquoted, err := strconv.Unquote(quoted) if err != nil { fmt.Println("Unquote error: ", err) } else { fmt.Println("Unquoted: ", unquoted) } }
strconv.CanBackquote
strconv.CanBackquote 函数用于检查字符串是否可以不变地表示为单行反引号字符串(即以 `` 开头和结尾的字符串)。简单使用示例如下:
package main import ( "fmt" "strconv" ) func main() { str1 := "Hello, world!" str2 := "`Hello, world!`" str3 := "`Hello,\nworld!`" fmt.Println(strconv.CanBackquote(str1)) // 输出:false fmt.Println(strconv.CanBackquote(str2)) // 输出:true fmt.Println(strconv.CanBackquote(str3)) // 输出:false }
到此这篇关于Golang 中的 strconv 包详解的文章就介绍到这了,更多相关Golang strconv 包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!