Go语言数据类型转换

Go语言数据类型的转换细节。


例子描述

Go在不同类型的变量之间赋值时需要显式转换,并且只有显式转换(强制转换)。

表达式T(v)将值v转换为类型T
T : 就是数据类型
v : 就是需要转换的变量

package main
import "fmt"

func main(){
	//进行类型转换:
	var n1 int = 100
	//var n2 float32 = n1  在这里自动转换不可用
	fmt.Println(n1)
	var n2 float32 = float32(n1)
	fmt.Println(n2)
	//注意:n1的类型其实还是int类型,只是将n1的值100转为float32而已,n1还是int的类型
	fmt.Printf("%T",n1) //int


	//将int64 转为int8的时候,编译是不会出错的,但是会数据的溢出
	var n3 int64 = 888888
	var n4 int8 = int8(n3)
	fmt.Println(n4)//56


	var n5 int32 = 12
	//var n6 int64 = int32(n5) + 30 //报错编译不通过
	var n6 int64 = int64(n5) + 30 //一定要匹配等号左右的数据类型,不然肯定会有错误
	fmt.Println(n5)
	fmt.Println(n6)


	var n7 int64 =12
	var n8 int8 = int8(n7) + 127  //编译通过,但是结果会溢出
	//var n9 int8 = int8(n7) + 128  //128已经超出存储范围,连编译都不会通过
	fmt.Println(n8)
	//fmt.Println(n9)
	
}

总结:

Go语言使用数据类型转换时,要注意匹配等号两边的数据类型,容易出错。
存储空间大字节转小字节,如int64int8,编译并不会报错,但是数据溢出,结果是错的。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值