strconv
strconv
是 Go 语言标准库中的一个包,用于字符串和基本数据类型之间的相互转换。它提供了许多函数,可以将数字、布尔值和其他基本类型转换为字符串,以及将字符串转换回这些类型。
以下是 strconv
包中一些常用的函数和用法示例:
- 字符串转换为基本数据类型:
strconv.Atoi(s string) (int, error)
:将字符串转换为整数。如果转换失败,会返回一个错误。
package main
import (
"fmt"
"strconv"
)
func main() {
s := "123"
num, err := strconv.Atoi(s)
if err != nil {
fmt.Println("Conversion error:", err)
} else {
fmt.Println("Converted number:", num)
}
}
strconv.ParseFloat(s string, bitSize int) (float64, error)
:将字符串转换为浮点数。bitSize
参数指定浮点数的位数。
- 基本数据类型转换为字符串:
strconv.Itoa(i int) string
:将整数转换为字符串。
package main
import (
"fmt"
"strconv"
)
func main() {
num := 123
str := strconv.Itoa(num)
fmt.Println("Converted string:", str)
}
strconv.FormatFloat(f float64, fmt byte, prec, bitSize int) string
:将浮点数转换为字符串。fmt
参数指定格式,prec
参数指定小数点后的精度,bitSize
参数指定浮点数的位数。
- 布尔值转换为字符串:
strconv.FormatBool(b bool) string
:将布尔值转换为字符串。
package main
import (
"fmt"
"strconv"
)
func main() {
value := true
str := strconv.FormatBool(value)
fmt.Println("Converted string:", str)
}
这些只是 strconv
包中一部分常用函数的示例,它还提供了其他一些函数用于更复杂的转换操作,可以根据具体需求选择合适的函数进行类型转换。
strconv.ParseInt(s,0,0)
抱歉,我明白你的问题了。strconv.ParseInt
函数的签名是这样的:
func ParseInt(s string, base int, bitSize int) (i int64, err error)
其中 base
参数表示输入字符串的进制,bitSize
参数表示结果整数的位数。而 0
这种写法是使用默认值的方式。
base
参数用来指定输入字符串的进制,它可以是 2 到 36 之间的任意整数,或者是 0。当base
为 0 时,函数会根据输入字符串的前缀自动判断进制:以 "0x" 开头的被认为是十六进制,以 "0" 开头的被认为是八进制,其它情况被认为是十进制。bitSize
参数用来指定结果整数的位数,它可以是 0、8、16、32 或 64。如果bitSize
是 0,函数会根据输入字符串的格式来选择合适的位数:如果输入字符串是有符号的,它会选择 64 位;如果输入字符串是无符号的,它会选择 32 位。
所以,strconv.ParseInt(s, 0, 0)
这种写法表示使用默认的进制和位数,具体进制和位数会根据输入字符串的格式自动判断或选择。
fmt.Sprintf
fmt.Sprintf
函数是 Go 语言中用于格式化字符串的函数,类似于 C 语言中的 sprintf
函数。它可以根据指定的格式将各种数据类型转换为字符串。
fmt.Sprintf
的基本语法如下:
func Sprintf(format string, a ...interface{}) string
format
:一个格式化字符串,其中包含类似于占位符%d
、%s
、%f
等的格式化指示符。a ...interface{}
:一个变长参数,表示需要格式化的值,可以是多个不同类型的值。
fmt.Sprintf
函数根据 format
字符串中的格式化指示符,将 a
中的值格式化为字符串,然后返回格式化后的字符串。
以下是一个简单的示例:
package main
import "fmt"
func main() {
name := "Alice"
age := 30
height := 1.75
formattedString := fmt.Sprintf("Name: %s, Age: %d, Height: %.2f", name, age, height)
fmt.Println(formattedString)
}
运行上述代码,输出将会是:
Name: Alice, Age: 30, Height: 1.75
在这个示例中,fmt.Sprintf
函数将三个不同类型的值格式化为一个字符串,并将格式化后的字符串存储在 formattedString
变量中。