📌  相关文章
📜  Golang 中的 strconv 包(1)

📅  最后修改于: 2023-12-03 15:15:22.770000             🧑  作者: Mango

Golang 中的 strconv 包

在 Golang 中,strconv 包用于在不同类型之间进行转换,例如将字符串转换为整数或浮点数,或将整数或浮点数转换为字符串。

strconv 包的主要函数
  • strconv.Atoi(str string) (int, error): 将一个字符串转换为 int 类型,如果转换失败则返回错误值。示例代码:
package main

import (
    "fmt"
    "strconv"
)

func main() {
    num, err := strconv.Atoi("123")
    if err != nil {
        // 转换失败,返回错误信息
        fmt.Println(err)
    } else {
        // 转换成功,输出转换后的整数
        fmt.Println(num)
    }
}
  • strconv.ParseBool(str string) (bool, error): 将一个字符串转换为布尔值类型,如果转换失败则返回错误值。示例代码:
package main

import (
    "fmt"
    "strconv"
)

func main() {
    b, err := strconv.ParseBool("true")
    if err != nil {
        // 转换失败,返回错误信息
        fmt.Println(err)
    } else {
        // 转换成功,输出转换后的布尔值
        fmt.Println(b)
    }
}
  • strconv.ParseFloat(str string, bitSize int) (float64, error): 将一个字符串转换为 float64 类型,如果转换失败则返回错误值。参数 bitSize 表示转换后的浮点数精度,可选值为 32 和 64。示例代码:
package main

import (
    "fmt"
    "strconv"
)

func main() {
    f, err := strconv.ParseFloat("3.14", 64)
    if err != nil {
        // 转换失败,返回错误信息
        fmt.Println(err)
    } else {
        // 转换成功,输出转换后的浮点数
        fmt.Println(f)
    }
}
  • strconv.ParseInt(str string, base int, bitSize int) (int64, error): 将一个字符串转换为 int64 类型,如果转换失败则返回错误值。参数 base 表示转换进制,常用的进制有二进制(base=2)、八进制(base=8)、十进制(base=10)和十六进制(base=16);参数 bitSize 表示转换后的整数精度,可选值为 0、8、16、32 和 64。示例代码:
package main

import (
    "fmt"
    "strconv"
)

func main() {
    i, err := strconv.ParseInt("1001", 2, 64)
    if err != nil {
        // 转换失败,返回错误信息
        fmt.Println(err)
    } else {
        // 转换成功,输出转换后的整数
        fmt.Println(i)
    }
}
  • strconv.ParseUint(str string, base int, bitSize int) (uint64, error): 将一个字符串转换为 uint64 类型,如果转换失败则返回错误值。参数 base 表示转换进制,常用的进制有二进制(base=2)、八进制(base=8)、十进制(base=10)和十六进制(base=16);参数 bitSize 表示转换后的整数精度,可选值为 0、8、16、32 和 64。示例代码:
package main

import (
    "fmt"
    "strconv"
)

func main() {
    u, err := strconv.ParseUint("1010", 2, 64)
    if err != nil {
        // 转换失败,返回错误信息
        fmt.Println(err)
    } else {
        // 转换成功,输出转换后的整数
        fmt.Println(u)
    }
}
  • strconv.FormatBool(b bool) string: 将一个布尔值转换为字符串类型。示例代码:
package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := strconv.FormatBool(true)
    fmt.Println(str)
}
  • strconv.FormatFloat(f float64, fmt byte, prec int, bitSize int) string: 将一个浮点数转换为字符串类型。参数 fmt 表示转换格式,可选值为 'b'(科学计数法)、'e'(科学计数法)、'f'(普通浮点数)、'g'(自动选择);参数 prec 表示小数点后保留的位数;参数 bitSize 表示浮点数精度,可选值为 32 和 64。示例代码:
package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := strconv.FormatFloat(3.14159, 'f', 2, 64)
    fmt.Println(str)
}
  • strconv.FormatInt(i int64, base int) string: 将一个整数转换为字符串类型。参数 base 表示转换进制,常用的进制有二进制(base=2)、八进制(base=8)、十进制(base=10)和十六进制(base=16)。示例代码:
package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := strconv.FormatInt(10, 2)
    fmt.Println(str)
}
  • strconv.FormatUint(u uint64, base int) string: 将一个无符号整数转换为字符串类型。参数 base 表示转换进制,常用的进制有二进制(base=2)、八进制(base=8)、十进制(base=10)和十六进制(base=16)。示例代码:
package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := strconv.FormatUint(10, 2)
    fmt.Println(str)
}
总结

Golang 中的 strconv 包提供了丰富的转换函数,可以方便地在不同类型之间进行转换,使用时只需要根据参数类型和精度正确选择函数即可。