# 数据类型转换
# 字符串和整型之间的转换
# 字符串转为整型
# ParseInt跟ParseUint
参数1:数字的字符串形式
参数2:数字字符串的进制 比如二进制 八进制 十进制 十六进制
参数3:返回结果的bit大小 也就是int8 int16 int32 int64
func ParseInt(s string, base int, bitSize int) (i int64, err error) // 转成int类型
func ParseUint(s string, base int, bitSize int) (n uint64, err error) // 转成uint类型
实例
package main
import (
"fmt"
"strconv"
)
func main() {
s := "1"
s1, s1err := strconv.ParseInt(s, 10, 64)
if s1err == nil {
fmt.Println(s1err)
}
fmt.Println(s1)
s2, s2err := strconv.ParseUint(s, 10, 64)
if s2err == nil {
fmt.Println(s2err)
}
fmt.Println(s2)
}
结果:
<nil>
1
<nil>
1
# Atoi - 常用
Atoi 是 ParseInt 的便捷版,内部通过调用 ParseInt(s, 10, 0)
func Atoi(s string) (i int, err error)
实例
package main
import (
"fmt"
"strconv"
)
func main() {
s := "1"
fmt.Println(strconv.Atoi(s))
}
// 结果:
1 <nil>
# 整型转为字符串
# FormatInt跟FormatUint
func FormatUint(i uint64, base int) string // 无符号整型转字符串
func FormatInt(i int64, base int) string // 有符号整型转字符串
实例
package main
import (
"fmt"
"strconv"
)
func main() {
s := int64(1)
fmt.Println(strconv.FormatInt(s, 10))
s1 := uint64(1)
fmt.Println(strconv.FormatUint(s1, 10))
}
// 结果:
1
1
# Itoa - 常用
Itoa 内部直接调用 FormatInt(i, 10) 实现的
func Itoa(i int) string
实例
package main
import (
"fmt"
"strconv"
)
func main() {
s := 1
fmt.Println(strconv.Itoa(s))
}
// 结果:
1
# 字符串和布尔值之间的转换
# 字符串转为布尔值
// 接受 1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False 等字符串;
// 其他形式的字符串会返回错误
func ParseBool(str string) (value bool, err error)
实例
package main
import (
"fmt"
"strconv"
)
func main() {
s := "1"
s1, err := strconv.ParseBool(s)
if err != nil {
fmt.Println(err)
}
fmt.Println(s1)
}
// 结果:
true
# 布尔值转为字符串
// 直接返回 "true" 或 "false"
func FormatBool(b bool) string
实例
package main
import (
"fmt"
"strconv"
)
func main() {
s := false
fmt.Println(strconv.FormatBool(s))
}
// 结果:
false
# AppendBool
// 将 "true" 或 "false" append 到 dst 中
// 这里用了一个 append 函数对于字符串的特殊形式:append(dst, "true"...)
func AppendBool(dst []byte, b bool)
# 字符串和浮点数之间的转换
# 字符串转为浮点数
func ParseFloat(s string, bitSize int) (f float64, err error)
实例
package main
import (
"fmt"
"strconv"
)
func main() {
s := "1.1"
s1, err := strconv.ParseFloat(s, 10)
if err != nil {
fmt.Println(err)
}
fmt.Println(s1)
}
// 结果:
1.1
# 浮点数转为字符串
参数:
1. f:浮点数类型
2. fmt:表示格式:'f'(-ddd.dddd)、'b'(-ddddp±ddd,指数为二进制)、'e'(-d.dddde±dd,十进制指数)、'E'(-d.ddddE±dd,十进制指数)、'g'(指数很大时用'e'格式,否则'f'格式)、'G'(指数很大时用'E'格式,否则'f'格式),一般用 f
3. prec:控制精度(排除指数部分),简单来说,就是保留位数
4. bistsize:返回结果的bit大小 也就是float8 float16 float32 float64
func FormatFloat(f float64, fmt byte, prec, bitSize int) string
实例
package main
import (
"fmt"
"strconv"
)
func main() {
s := 1.14
fmt.Println(strconv.FormatFloat(s, 'f', 6, 64))
}
// 结果:
1.140000
# AppendFloat
func AppendFloat(dst []byte, f float64, fmt byte, prec int, bitSize int)
← 库大全 文本操作 - unicode →