go语言中文文档:
1.基本类型转换成字符串(string)
- fmt.Sprintf方法
fmt.Sprintf("%参数", 表达式)
注意:
- 参数需要和表达式的数据类型相匹配
- fmt.Sprintf()转换后返回字符串结果
func main() {
var num1 int = 99
var num2 float64 = 23.55
var b bool = true
var mych byte = 'd'
var st = string // 空的string
// 转化成string
str = fmt.Sprintf("%d", num1)
str = fmt.Sprintf("%f", num2)
str = fmt.Sprintf("%t", b)
str = fmt.Sprintf("%c", mych)
}
- strconv包
package main
import (
"fmt"
"strconv"
)
func main() {
var num1 int = 99
var num2 float64 = 23.55
var b bool = true
var mych byte = 'd'
var st = string // 空的string
str = strconv.FormatInt(int64(num1), 10) // 转出10进制字符串
fmt.Printf("type: %T, str: %q\n", str, str) // 格式化输出
// "f" 转换成浮点型数据后的一种表示格式,详见文档
// 10 精度
// 64 转换成float64
str = strconv.FormatFloat(num2, "f", 10, 64) //
str = strconv.FormatBool(b) // 转出布尔类型字符串
// 将整型变量转换成字符串,特例函数
var num3 int = 333
str = strconv.Itoa(num3) // 这里num3为int型,如果不是需要先显示转换
}
2.字符串转换成基本数据类型
- strconv包
func main() {
// 布尔类型转换
var str string = "true"
var b bool
b, _ = strconv.ParseBool(str)
// 整型转换
var str2 string = "232"
var n int64
var n2 int
// 10 转换成10进制
// 0、8、16、32、64 分别代表 int、int8、int16、int32、int64
n, _ = strconv.ParseInt(str2, 10, 64)
n2 = int(n) // 获取int类型的值,显示转换
// 浮点型转换
var str3 string = "22.33"
var f float64
f, _ = strconv.ParseFloat(str3, 64)
}
注意:
- 将string类型转换成基本类型时,必须确保string类型是有效的;如果是无效值则会转换成功,但是转换后的值为基本类型的默认值。例如不能把"ddd"转换成一个整数,如果这样做,golang直接将其转换成0