strconv

strconv 是 Go 语言标准库中的一个包,用于字符串和基本数据类型之间的相互转换。它提供了许多函数,可以将数字、布尔值和其他基本类型转换为字符串,以及将字符串转换回这些类型。

以下是 strconv 包中一些常用的函数和用法示例:

  1. 字符串转换为基本数据类型
  • 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 参数指定浮点数的位数。
  1. 基本数据类型转换为字符串
  • 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 参数指定浮点数的位数。
  1. 布尔值转换为字符串
  • 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 变量中。