第三篇 -- Go语言其他类型转String方法
1. int转string
// 法1: int转string num_int := 10 num_str_2 := fmt.Sprintf("%b", num_int) fmt.Printf("num_int的数据类型是%T, num_str_2的数据类型是%T, num_str_2=%s\n", num_int, num_str_2, num_str_2) num_str_8 := fmt.Sprintf("%o", num_int) fmt.Printf("num_int的数据类型是%T, num_str_8的数据类型是%T, num_str_8=%s\n", num_int, num_str_8, num_str_8) num_str_10 := fmt.Sprintf("%d", num_int) fmt.Printf("num_int的数据类型是%T, num_str_10的数据类型是%T, num_str_10=%s\n", num_int, num_str_10, num_str_10) num_str_16 := fmt.Sprintf("%0x", num_int) fmt.Printf("num_int的数据类型是%T, num_str_16的数据类型是%T, num_str_16=%s\n", num_int, num_str_16, num_str_16) // 法2: int转string num1_int := 128 num1_str_2 := strconv.FormatInt(int64(num1_int), 2) num1_str_8 := strconv.FormatInt(int64(num1_int), 8) num1_str_10 := strconv.Itoa(num1_int) num1_str_16 := strconv.FormatInt(int64(num1_int), 16) fmt.Printf("num1_int的数据类型是%T, num1_str_2的数据类型是%T, num1_str_2=%s\n", num1_int, num1_str_2, num1_str_2) fmt.Printf("num1_int的数据类型是%T, num1_str_8的数据类型是%T, num1_str_8=%s\n", num1_int, num1_str_8, num1_str_8) fmt.Printf("num1_int的数据类型是%T, num1_str_10的数据类型是%T, num1_str_10=%s\n", num1_int, num1_str_10, num1_str_10) fmt.Printf("num1_int的数据类型是%T, num1_str_16的数据类型是%T, num1_str_16=%s\n", num1_int, num1_str_16, num1_str_16)
输出结果为:
num_int的数据类型是int, num_str_2的数据类型是string, num_str_2=1010 num_int的数据类型是int, num_str_8的数据类型是string, num_str_8=12 num_int的数据类型是int, num_str_10的数据类型是string, num_str_10=10 num_int的数据类型是int, num_str_16的数据类型是string, num_str_16=a num1_int的数据类型是int, num1_str_2的数据类型是string, num1_str_2=10000000 num1_int的数据类型是int, num1_str_8的数据类型是string, num1_str_8=200 num1_int的数据类型是int, num1_str_10的数据类型是string, num1_str_10=128 num1_int的数据类型是int, num1_str_16的数据类型是string, num1_str_16=80
2. float转string
// 法1: float转string num_float := 12.75 num_str := fmt.Sprintf("%f", num_float) fmt.Printf("num_float的数据类型是%T,num_str的数据类型是%T,num_str=%s\n", num_float, num_str, num_str) num_str_k3 := fmt.Sprintf("%.3f", num_float) fmt.Printf("num_float的数据类型是%T,num_str_k3的数据类型是%T,num_str_k3=%s\n", num_float, num_str_k3, num_str_k3) num_str_k1 := fmt.Sprintf("%.1f", num_float) fmt.Printf("num_float的数据类型是%T,num_str_k1的数据类型是%T,num_str_k1=%s\n", num_float, num_str_k1, num_str_k1) // 法2: float转string num1_float := 128.99000003253 num1_str_k8 := strconv.FormatFloat(num1_float, 'f', 8, 64) fmt.Printf("num1_float的数据类型是%T, num1_str_k8的数据类型是%T, num1_str_k8=%s\n", num1_float, num1_str_k8, num1_str_k8) num1_str_k2 := strconv.FormatFloat(num1_float, 'f', 2, 64) fmt.Printf("num1_float的数据类型是%T, num1_str_k2的数据类型是%T, num1_str_k2=%s\n", num1_float, num1_str_k2, num1_str_k2) num1_str_k0 := strconv.FormatFloat(num1_float, 'f', 0, 64) fmt.Printf("num1_float的数据类型是%T, num1_str_k0的数据类型是%T, num1_str_k0=%s\n", num1_float, num1_str_k0, num1_str_k0)
输出结果为:
num_float的数据类型是float64,num_str的数据类型是string,num_str=12.750000 num_float的数据类型是float64,num_str_k3的数据类型是string,num_str_k3=12.750 num_float的数据类型是float64,num_str_k1的数据类型是string,num_str_k1=12.8 num1_float的数据类型是float64, num1_str_k8的数据类型是string, num1_str_k8=128.99000003 num1_float的数据类型是float64, num1_str_k2的数据类型是string, num1_str_k2=128.99 num1_float的数据类型是float64, num1_str_k0的数据类型是string, num1_str_k0=129
3. bool转string
// 法1: bool转string b_bool := true b_str := fmt.Sprintf("%t", b_bool) fmt.Printf("b_bool的数据类型是%T, b_str的数据类型是%T, b_str=%s\n", b_bool, b_str, b_str) // 法2: bool转string b1_bool := false b1_str := strconv.FormatBool(b1_bool) fmt.Printf("b1_bool的数据类型是%T, b1_str的数据类型是%T, b1_str=%s\n", b1_bool, b1_str, b1_str)
输出结果为:
b_bool的数据类型是bool, b_str的数据类型是string, b_str=true b1_bool的数据类型是bool, b1_str的数据类型是string, b1_str=false
4. char 转 string
这个有点特殊,打印出来的数据类型不是char型
c_char := '@' c_str := fmt.Sprintf("%c", c_char) fmt.Printf("c_char的数据类型是%T, c_str的数据类型是%T, c_str=%s\n", c_char, c_str, c_str)
输出结果为:
c_char的数据类型是int32, c_str的数据类型是string, c_str=@
还需进一步研究。
源代码:
package main import ( "fmt" "strconv" ) func main() { // 法1: int转string num_int := 10 num_str_2 := fmt.Sprintf("%b", num_int) fmt.Printf("num_int的数据类型是%T, num_str_2的数据类型是%T, num_str_2=%s\n", num_int, num_str_2, num_str_2) num_str_8 := fmt.Sprintf("%o", num_int) fmt.Printf("num_int的数据类型是%T, num_str_8的数据类型是%T, num_str_8=%s\n", num_int, num_str_8, num_str_8) num_str_10 := fmt.Sprintf("%d", num_int) fmt.Printf("num_int的数据类型是%T, num_str_10的数据类型是%T, num_str_10=%s\n", num_int, num_str_10, num_str_10) num_str_16 := fmt.Sprintf("%0x", num_int) fmt.Printf("num_int的数据类型是%T, num_str_16的数据类型是%T, num_str_16=%s\n", num_int, num_str_16, num_str_16) // 法2: int转string num1_int := 128 num1_str_2 := strconv.FormatInt(int64(num1_int), 2) num1_str_8 := strconv.FormatInt(int64(num1_int), 8) num1_str_10 := strconv.Itoa(num1_int) num1_str_16 := strconv.FormatInt(int64(num1_int), 16) fmt.Printf("num1_int的数据类型是%T, num1_str_2的数据类型是%T, num1_str_2=%s\n", num1_int, num1_str_2, num1_str_2) fmt.Printf("num1_int的数据类型是%T, num1_str_8的数据类型是%T, num1_str_8=%s\n", num1_int, num1_str_8, num1_str_8) fmt.Printf("num1_int的数据类型是%T, num1_str_10的数据类型是%T, num1_str_10=%s\n", num1_int, num1_str_10, num1_str_10) fmt.Printf("num1_int的数据类型是%T, num1_str_16的数据类型是%T, num1_str_16=%s\n", num1_int, num1_str_16, num1_str_16) // 法1: float转string num_float := 12.75 num_str := fmt.Sprintf("%f", num_float) fmt.Printf("num_float的数据类型是%T,num_str的数据类型是%T,num_str=%s\n", num_float, num_str, num_str) num_str_k3 := fmt.Sprintf("%.3f", num_float) fmt.Printf("num_float的数据类型是%T,num_str_k3的数据类型是%T,num_str_k3=%s\n", num_float, num_str_k3, num_str_k3) num_str_k1 := fmt.Sprintf("%.1f", num_float) fmt.Printf("num_float的数据类型是%T,num_str_k1的数据类型是%T,num_str_k1=%s\n", num_float, num_str_k1, num_str_k1) // 法2: float转string num1_float := 128.99000003253 num1_str_k8 := strconv.FormatFloat(num1_float, 'f', 8, 64) fmt.Printf("num1_float的数据类型是%T, num1_str_k8的数据类型是%T, num1_str_k8=%s\n", num1_float, num1_str_k8, num1_str_k8) num1_str_k2 := strconv.FormatFloat(num1_float, 'f', 2, 64) fmt.Printf("num1_float的数据类型是%T, num1_str_k2的数据类型是%T, num1_str_k2=%s\n", num1_float, num1_str_k2, num1_str_k2) num1_str_k0 := strconv.FormatFloat(num1_float, 'f', 0, 64) fmt.Printf("num1_float的数据类型是%T, num1_str_k0的数据类型是%T, num1_str_k0=%s\n", num1_float, num1_str_k0, num1_str_k0) // 法1: bool转string b_bool := true b_str := fmt.Sprintf("%t", b_bool) fmt.Printf("b_bool的数据类型是%T, b_str的数据类型是%T, b_str=%s\n", b_bool, b_str, b_str) // 法2: bool转string b1_bool := false b1_str := strconv.FormatBool(b1_bool) fmt.Printf("b1_bool的数据类型是%T, b1_str的数据类型是%T, b1_str=%s\n", b1_bool, b1_str, b1_str) c_char := '@' c_str := fmt.Sprintf("%c", c_char) fmt.Printf("c_char的数据类型是%T, c_str的数据类型是%T, c_str=%s\n", c_char, c_str, c_str) }
OK。