3.8 KiB
在 Go 语言中,strconv
包提供了许多用于基本数据类型和字符串之间相互转换的函数。以下是一些常用的函数及其功能:
1. 字符串与整数之间的转换
-
Atoi(s string) (int, error)
将字符串转换为整数(十进制)。如果转换失败,会返回错误。
示例:num, err := strconv.Atoi("123") if err != nil { fmt.Println("转换错误:", err) } else { fmt.Println("转换结果:", num) // 输出: 转换结果: 123 }
-
Itoa(i int) string
将整数转换为字符串。
示例:str := strconv.Itoa(123) fmt.Println("转换结果:", str) // 输出: 转换结果: "123"
-
ParseInt(s string, base int, bitSize int) (i int64, err error)
将字符串按指定进制和位数转换为整数。
示例:num, err := strconv.ParseInt("FF", 16, 64) if err != nil { fmt.Println("转换错误:", err) } else { fmt.Println("转换结果:", num) // 输出: 转换结果: 255 }
-
FormatInt(i int64, base int) string
将整数按指定进制格式化为字符串。
示例:str := strconv.FormatInt(255, 16) fmt.Println("转换结果:", str) // 输出: 转换结果: "ff"
2. 字符串与浮点数之间的转换
-
ParseFloat(s string, bitSize int) (float64, error)
将字符串转换为浮点数。
示例:num, err := strconv.ParseFloat("3.14", 64) if err != nil { fmt.Println("转换错误:", err) } else { fmt.Println("转换结果:", num) // 输出: 转换结果: 3.14 }
-
FormatFloat(f float64, fmt byte, prec, bitSize int) string
将浮点数格式化为字符串。
示例:str := strconv.FormatFloat(3.14159, 'f', 2, 64) fmt.Println("转换结果:", str) // 输出: 转换结果: "3.14"
3. 字符串与布尔值之间的转换
-
ParseBool(str string) (bool, error)
将字符串转换为布尔值。支持的真值包括"true"
、"True"
、"TRUE"
等,假值包括"false"
、"False"
、"FALSE"
等。
示例:b, err := strconv.ParseBool("True") if err != nil { fmt.Println("转换错误:", err) } else { fmt.Println("转换结果:", b) // 输出: 转换结果: true }
-
FormatBool(b bool) string
将布尔值转换为字符串("true"
或"false"
)。
示例:str := strconv.FormatBool(true) fmt.Println("转换结果:", str) // 输出: 转换结果: "true"
4. 其他常用函数
-
Quote(s string) string
返回一个带有双引号的字符串字面量表示形式。
示例:str := strconv.Quote("Hello, World!") fmt.Println("转换结果:", str) // 输出: 转换结果: "\"Hello, World!\""
-
Unquote(s string) (string, error)
移除字符串中的双引号,并还原转义字符。
示例:str, err := strconv.Unquote("\"Hello, World!\"") if err != nil { fmt.Println("转换错误:", err) } else { fmt.Println("转换结果:", str) // 输出: 转换结果: Hello, World! }
-
Append
系列函数
这些函数将基本数据类型直接追加到字节切片中,常用于高效的字符串拼接操作。例如:AppendInt
、AppendBool
、AppendFloat
等。
示例:b := []byte("数字是: ") b = strconv.AppendInt(b, 123, 10) fmt.Println(string(b)) // 输出: 数字是: 123
在
strconv.AppendInt(b, 123, 10)
中,第三个参数表示数字的进制(base)。具体来说:10
表示将整数123
按照十进制格式追加到字节切片b
中。如果改为其他值,例如16
则表示将整数以十六进制格式追加;如果是2
,则表示以二进制格式追加。