golang 基本数据类型转 string 类型

3.15 基本数据类型和 string 的转换(重点)

基本数据类型和 string 类型的相互转换,这种转换方式在我们开发中用的也是比较多。也就是说基本数据类型转 string 或者说是 string 转基本数据类型。

3.15.1 介绍

在程序开发中,我们经常需要将基本数据类型转成 string 类型。

或者将 string 类型转成基本数据类型。

3.15.2 基本数据类型转 string 类型

基本数据类型转 string 类型主要有两种方式:

  • 方式一:使用 fmt.Sprintf("%参数",表达式) 在实际开发中建议使用该方式

  • 方式二:使用 strcony 包中相关的函数

3.15.2.1 方式一范例

fmt.Sprintf("%参数",表达式) 函数官方文档介绍:

go 官方文档:https://studygolang.com/pkgdoc

1、在左边找到 fmt 包点击进入

2、点击进入了fmt 包之后往下翻找到 index 索引然后找到我们需要查看的 Sprintf 函数

3、点击 sprintf 之后就可以看到它的相关介绍和使用

Sprintf 这个函数是用来做一个格式化字符串的,可以将我们指定的数据类型转成一个字符串

3.15.2.1.1 案例演示 将 int 类型转换为 string 类型范例

范例:

package main

import "fmt"

// 演示 golang 中基本数据类型转成 string 使用
func main()  {
    var num1 int = 99
    var str string  // 空的 str

    str = fmt.Sprintf("%d",num1) // 意思是我将 num1 转成一个 string 类型然后返回给 str 这个变量
    fmt.Printf("str type %T str=%v",str,str) // 通过 fmt.Printf 进行输出并且 %T 输出数据类型,%v 直的默认格式表示
}

CMD 终端输出结果

就会发现 str 变量的类型为 string 并且值是 99

3.15.2.1.2 案例演示 将 float64 类型转换为 string 类型范例

范例:

package main

import "fmt"

// 演示 golang 中基本数据类型转成 string 使用
func main()  {

    var num2 float64 = 23.456
    var str string // 空的 str

    str = fmt.Sprintf("%f",num2)    // %f 小数部分但无指数部分
    fmt.Printf("str type %T str=%v",str,str)
}

CMD 终端输出结果

就会发现 str 的值已经变为了 num2 的 23.456 并且 str 依旧是一个 string 类型

3.15.2.1.3 案例演示 将 bool 值转换为 string 类型范例

范例:

package main

import "fmt"

// 演示 golang 中基本数据类型转成 string 使用
func main()  {

    var b bool = true
    var str string // 空的 str

    // 使用第一种方式来转换 fmt.Sprintf

    str = fmt.Sprintf("%t",b)           // %t 单词true或false 并且将上面 b 的值赋值给 str 变量
    fmt.Printf("str type %T str=%v",str,str)    // 输出的时候打印 %T 类型,和 %v 保留原值
}

CMD 输出结果

str 类型依旧为 string 类型但是它的值已经为 true 真

3.15.2.1.4 案例演示 将 byte 值转换为 string 类型范例

范例:

package main

import "fmt"

// 演示 golang 中基本数据类型转成 string 使用
func main()  {
    var myChar byte = 'h'
    var str string // 空的 str
    
    str = fmt.Sprintf("%c",myChar)  // %c 是按照字符来进行输出的,然后 mychar 给我转换成一个字符串
    fmt.Printf("str type %T str=%v",str,str)
}

CMD 输出结果:

就会得到 str 类型为 string 值为 h

关于基本数据类型转 string 字符串类型的第一种方式上面就演示完毕了。

3.15.2.1.5 方式一 转换代码合集
package main

import "fmt"

// 演示 golang 中基本数据类型转成 string 使用
func main()  {
    var num1 int = 99
    var num2 float64 = 23.456
    var b bool = true
    var myChar byte = 'h'
    var str string // 空的 str

    // 使用第一种方式来转换 fmt.Sprintf

    str = fmt.Sprintf("%d",num1) // 意思是我将 num1 转成一个 string 类型然后返回给 str 这个变量
    fmt.Printf("str type %T str=%v\n",str,str)

    str = fmt.Sprintf("%f",num2)
    fmt.Printf("str type %T str=%v\n",str,str)

    str = fmt.Sprintf("%t",b)
    fmt.Printf("str type %T str=%q\n",str,str)
    str = fmt.Sprintf("%c",myChar)  // %c 是按照字符来进行输出的,然后 mychar 给我转换成一个字符串
    fmt.Printf("str type %T str=%v",str,str)
}

3.15.2.2 方式二范例

通过使用 strconv 包的函数进行转换

重点就是下面 4 种方式

既然要使用strconv 包中的函数,我们应该对这个包的函数做一个了解。

1、官方文档地址: https://studygolang.com/pkgdoc

2、找到下面这 4 个函数

3.15.2.2.1 案例演示 通过 strconv.FormatInt 函数将 int 类型转换为 string 类型
package main

import (
    "strconv" // 引入 strconv 包
)

func main()  {
    var num3 int = 99
    var str string // 空的 str
    
    str = strconv.FormatInt(int64(num3),10) // 使用 strconve 包的 Formatint 函数,然后再将 num3 由 int 强制转换为 int64 ,而且由 10 进制输出
    fmt.Printf("str type %T str=%q ",str,str)
} 

CMD 输出结果:

通过 CMD 输出会发现 str 类型为 string ,并且 str 值为 99 成功转换

3.15.2.2.2 案例演示 通过strconv.FormatFloat 函数将 float 类型转换为 string 类型
package main

import (
    "strconv" // 引入 strconv 包
)

func main()  {
    var str string // 空的 str
    var num4 float64 = 23.456
    
    // strconv.FormatFloat(num4,'f',10,64)
    // 说明:'f' 表示转成的格式。10 表示小数位保留 10 位也就是小数点之后可以有 10 位数。64 表示 num4 这个变量位 float64 位的
    str = strconv.FormatFloat(num4,'f',10,64)
    fmt.Printf("str type %T str=%q",str,str)
} 

CMD 输出结果:

通过输出我们会发现 str 变量类型依旧是 string 数据类型 ,但是 str 变量的值已经赋值了 num4 的 23.456 并且小数点后面一共有 10 位数

3.15.2.2.3 案例演示 通过 strconv.FormatBool 函数将 bool 类型转换为 string 类型
package main

import (
    "strconv" // 引入 strconv 包
)

func main()  {
    var str string // 空的 str
    var b2 bool = true
    str = strconv.FormatBool(b2)    // 通过 strconve.FormatBool 函数直接调用 b2 的赋值
    fmt.Printf("str type %T str=%q",str,str)
} 

CMD 输出结果:

str 的 type 类型依旧是 string ,但是 str 已经边为了 true

3.15.2.2.4 第二种方式代码合集
package main

import (
    "strconv" // 引入 strconv 包
)

func main()  {
    var str string // 空的 str
    var num3 int = 99
    var num4 float64 = 23.456
    var b2 bool = true

    str = strconv.FormatInt(int64(num3),10) // 10 表示转成 10 进制,并且将 num 3 由 int 类型转为 int64
    fmt.Printf("str type %T str=%q\n ",str,str)


    // strconv.FormatFloat(num4,'f',10,64)
    // 说明:'f' 表示转成的格式。10 表示小数位保留 10 位也就是小数点之后可以有 10 位数。64 表示 num4 这个变量位 float64 位的
    str = strconv.FormatFloat(num4,'f',10,64)
    fmt.Printf("str type %T str=%q\n",str,str)

    str = strconv.FormatBool(b2)    // 通过 strconve.FormatBool 函数直接调用 b2 的赋值
    fmt.Printf("str type %T str=%q\n",str,str)
} 

点赞