go语言使用-基础语法(3)之数据类型(7)基本数据类型、Byte和string间转换

一、基本介绍

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

二、基本类型转string类型的方式

1、fmt.Sprintf
这里写图片描述
fmt.Sprintf(“%参数”, 表达式) 参数需要和表达式的数据类型相匹配
fmt.Sprintf().. 会返回转换后的字符串

使用案例:

package main
import (
    "fmt"
    "strconv"
)

func main() {
    //定义一些基本数据类型
    var n1 int64 = 1234565
    var n2 float64 = 123.4098
    var b bool = true
    var char1 byte = 'a'

    //开始转
    str1 := fmt.Sprintf("%d 转换另外一个 %f", n1, n2)
    str2 := fmt.Sprintf("%f", n2)
    str3 := fmt.Sprintf("%t", b)
    str4 := fmt.Sprintf("%c", char1)

    fmt.Printf("str1 = %q str2 = %q str3 =%q str4 =%q\n",
        str1, str2, str3, str4)



}

2、使用strconv 包的函数将基本数据类型转string

strconv包的类型转换函数如下:(复制源码)
这里写图片描述
使用案例:

package main
import (
    "fmt"
    "strconv"
)

func main() {
    //第二种方式

    var num1 int64 = 1234565 
    //var num2 float64 = 123.4098

    str5 := strconv.FormatInt(num1, 10)
    fmt.Printf("str5=%s\n", str5)

}

三、string类型转基本数据类型——strconv包

1、使用 strconv包的函数

这里写图片描述
2、快速入门案例

package main
import (
    "fmt"
    "strconv"
)

func main() {

    //声明几个字符串
    str1 := "123.987" // float64
    str2 := "89123" // -> int64
    str3 := "true" // -> bool

    //开始转换

    num1, _ := strconv.ParseFloat(str1, 64)
    num2, _ := strconv.ParseInt(str2, 10, 64)
    b1, _ := strconv.ParseBool(str3)

    fmt.Printf("num1 = %T val=%v\n", num1, num1)
    fmt.Printf("num2 = %T val=%v\n", num2, num2)
    fmt.Printf("b1 = %T val=%v\n", b1, b1)

    //其它说明
    //1 如果希望将str 转成 int32  int 16 等,可以在转成 int64 ,在进行换行。
    //2 如果希望将str 转成 float32  ,可以在转成 float64 ,在进行换行。
    //3. 注意,如何判断转换成功!

    str4 := "hello" //=> int64
    num3, err := strconv.ParseInt(str4, 10, 64)
    if err!= nil { // 说明转换没有成功
        fmt.Printf("convert err = %v\n", err)
        //这里就可以加入自己处理逻辑
    } else {
        fmt.Printf("num3 = %T val=%v\n", num3, num3)
    }
}

3、使用细节和注意事项
在将String 类型转成 基本数据类型时,要确保String类型能够转成有效的数据,比如 我们可以把 “123” , 转成一个整数,但是不能把 “hello” 转成一个整数,如果这样做,Golang直接将其转成 0。
这里写图片描述

四、string和byte的切片转换

1、string 转为[]byte

var str string = "test"
var data []byte = []byte(str)

2、byte转为string

var data [10]byte 
byte[0] = 'T'
byte[1] = 'E'
var str string = string(data[:])

五、Byte和Int系列

六、Byte和Float系列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值