您的位置 首页 golang

Go语言基础数据类型转换

前面给大家分享过Go语言中的基本数据类型(没有关注的可以看下历史消息),分别是 布尔类型、整形、浮点型、复数类型、字符串和字符类型 ,Go语言是强类型语言,不能像PHP那样可以自动转换,需要显示地进行强制转换。

数值类型之间的转换

在进行数值类型转化时只需要使用要转换的对应的函数即可:

 v1 := uint(16) // 初始化 v1 为 uint
v2 := int8(v1) // 将 v1 转换为 int8类型
v3 := uint(v2) // 将 v2 转换为 uint 类型

val := uint(-17) // uint是无符号类型,所以会报错

val1 := uint(255) 
val2 := int8(val1) // val2 = -1  

整型和浮点类型的转换时,浮点转换整型时,小数位被丢弃,整型转换为浮点时直接使用对应函数即可,如下:

 v1 := 99.99
v2 := int(v1) // 99

v3 := 99
v4 := float64(v3)  

字符串和其他基本类型的转换
整型可以通过对应的 utf-8 编码转化为对应的字符串:

 v1 := 66
v2 := string(v1) // B

v3 := 20011
v4 := string(v3) // 丫  

还可以将字节数组或者 rune 数组转换为字符串:

 v1 := []byte{'k', 'e', 'l', 'v', 'i', 'n'}
v2 := string(v1) // kelvin  

数值类型和布尔类型的转换

目前Go不支持将数值类型转换为布尔类型,我们可以根据自己的需求去转换。

strconv包

Go语言不支持将字符串类型转换为数值类型,我们可以通过 strconv 包来进行实现:

 // string -> int
v1 := "99"
v2, err := strconv.Atoi(v1) // 99

// int -> string
v3 := 99
v4 := strconv.Itoa(v3) // "99"

// int64 -> string
v5 := int64(100)
v6 := strconv.FormatInt(v5, 10) // "100"

// float -> string
v7 := 99.99
v8 := strconv.FormatFloat(v7, 'f', -1, 64) // 第二个参数-格式标记f:没有指数;第三个参数-精度;第四个参数-指定浮点类型
// v8 := fmt.Sprintf("%.2f", v7) // 或者可以这样

// string -> bool
v9 := "true"
v10, err := strconv.ParseBool(v9)

// string -> float64
v11 := "99.66"
v12, err := strconv.ParseFloat(v11, 64) //第二个参数为指定的精度

// string -> uint
v13 := "88"
v14, err := strconv.ParseUint(v13, 10, 64) // 第二个参数表示进制,第三个参数表示最大位数

// string -> byte
v15 := "99"
v16 := []byte(v15)

// string-> int32/int64
v17 := "100"
v18 := strconv.ParseInt(v17, 10, 64) // 第三个参数表示最大位数,选择32/64  

基础类型的转换大概就这些,还有我们常用的时间和字符串转换等后面我们再分享,关于 strconv 包的具体使用大家可以看下对应的API。

文章来源:智云一二三科技

文章标题:Go语言基础数据类型转换

文章地址:https://www.zhihuclub.com/86497.shtml

关于作者: 智云科技

热门文章

网站地图