首页> 基础笔记 >GoLang基础学习 >基础知识 基础知识
Golang基本数据类型的相互转换
作者:小萝卜 2023-03-29 【 GoLang 】 浏览 668
简介Golang和 java / c不同,Go在不同类型的变量之间赋值时需要显式转换。也就是说 Golang中数据类型不能自动转换。
基本介绍
Golang和 java / c不同,Go在不同类型的变量之间赋值时需要显式转换。也就是说 Golang中数据类型不能自动转换。
基本语法
表达式 T(v)将值 v转换为类型 T
T:就是数据类型,比如 int32,int64,float32等等
v:就是需要转换的变量
案例演示
var i int32 = 100
//希望将 i => float
var n1 float32 = float32(i)
var n2 int8 = int8(i)
var n3 int64 = int64(i) //低精度->高精度
fmt.Printf("i=%v n1=%v n2=%v n3=%v \n", i ,n1, n2, n3)
基本数据类型相互转换的注意事项
1) Go中,数据类型的转换可以是从表示范围小-->表示范围大,也可以范围大--->范围小
2)被转换的是变量存储的数据(即值),变量本身的数据类型并没有变化!
var i int32 = 100
//被转换的是变量存储的数据(即值),变量本身的数据类型并没有变化
fmt.Printf("i type is %T\n", i) // int32
3)在转换中,比如将 int64转成 int8【-128---127 】,编译时不会报错,只是转换的结果是按溢出处理,和我们希望的结果不一样。因此在转换时,需要考虑范围.
//在转换中,比如将 int64 转成 int8 【-128---127】 ,编译时不会报错,
//只是转换的结果是按溢出处理,和我们希望的结果不一样
var num1 int64 = 999999
var num2 int8 = int8(num1) //
fmt.Println("num2=", num2)
很赞哦! (1)