go中基本数据类型转换为string类型的方法

代码
// 基本数据类型转换为string类型
package main

import (
    "fmt"
    "strconv"
)

func main() {
    // 第一种方式使用fmt.Sprintf
    var v1 int = 100
    // v2的类型为float64
    var v2 = 3.14
    // v3的类型为int32
    v3 := 'm'
    var v4 bool = false
    var str string

    str = fmt.Sprintf("%d", v1)
    fmt.Printf("v1的原值为%v, 类型为%T, 转换成string类型值为%q\n", v1, v1, str) // v1的原值为100, 类型为int, 转换成string类型值为"100"

    str = fmt.Sprintf("%f", v2)
    fmt.Printf("v2的原值为%v, 类型为%T, 转换成string类型值为%q\n", v2, v2, str) // v2的原值为3.14, 类型为float64, 转换成string类型值为"3.140000"

    str = fmt.Sprintf("%c", v3)
    fmt.Printf("v3的原值为%v, 类型为%T, 转换成string类型值为%q\n", v3, v3, str) // v3的原值为109, 类型为int32, 转换成string类型值为"m"

    str = fmt.Sprintf("%t", v4)
    fmt.Printf("v4的原值为%v, 类型为%T, 转换成string类型值为%q\n", v4, v4, str) // v4的原值为false, 类型为bool, 转换成string类型值为"false"

    // 第二种方式使用strconv包的函数
    var v5 uint8 = 100
    var v6 bool = true
    var v7 int = 999999
    var v8 float32 = 3.1415926
    var v9 float64 = 3.1415926

    str = strconv.FormatUint(uint64(v5), 10)
    fmt.Printf("v5的原值为%v, 类型为%T, 转换成string类型值为%q\n", v5, v5, str) // v5的原值为100, 类型为uint8, 转换成string类型值为"100"

    str = strconv.FormatBool(v6)
    fmt.Printf("v6的原值为%v, 类型为%T, 转换成string类型值为%q\n", v6, v6, str) // v6的原值为true, 类型为bool, 转换成string类型值为"true"

    str = strconv.FormatInt(int64(v7), 10)
    fmt.Printf("v7的原值为%v, 类型为%T, 转换成string类型值为%q\n", v7, v7, str) // v7的原值为999999, 类型为int, 转换成string类型值为"999999"

    // 注意转换之后有精度的损失
    // 第二个参数表示转换格式byte类型,如 'f', 'b'等
    // 第三个参数表示精度,如保留几位小数
    // 第四个参数表示位数为int型
    str = strconv.FormatFloat(float64(v8), 'f', 10, 64)
    fmt.Printf("v8的原值为%v, 类型为%T, 转换成string类型值为%q\n", v8, v8, str) // v8的原值为3.1415925, 类型为float32, 转换成string类型值为"3.1415925026"

    str = strconv.FormatFloat(v9, 'f', 10, 64)
    fmt.Printf("v8的原值为%v, 类型为%T, 转换成string类型值为%q\n", v9, v9, str) // v8的原值为3.1415926, 类型为float64, 转换成string类型值为"3.1415926000"

    // 使用strconv包的Itoa函数
    // strconv.Itoa 等价于 strconv.FormatInt(int64(i), 10)
    var v10 uint8 = 127
    str = strconv.Itoa(int(v10))
    fmt.Printf("v10的原值为%v, 类型为%T, 转换成string类型值为%q\n", v10, v10, str) // v10的原值为127, 类型为uint8, 转换成string类型值为"127"
}
总结

查看源代码

posted @ 2019-12-04 19:22  勾践  阅读(3994)  评论(0编辑  收藏  举报