Go语言基础数据类型转换

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

这里是引用Go语言基础数据类型之万丈高楼平地起

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


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。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值