欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > Go语言--语法基础4--基本数据类型--类型转换

Go语言--语法基础4--基本数据类型--类型转换

2025/5/5 7:09:28 来源:https://blog.csdn.net/m0_64734557/article/details/147705155  浏览:    关键词:Go语言--语法基础4--基本数据类型--类型转换

Go 是一种强类型的语言,所以如果在赋值的时候两边类型不一致会报错。一个类型的值可以被转换成另一种类型的值。由于 Go 语言不存在隐式类型转换,因此所有的类型转换都必须显式的声明。

强制类型转换语法

使用 type (a) 这种形式来进行强制类型转换,比如:

var a int32 = 10
var b int64 = int64(a)

通过在变量前面添加指定类型,就可以进行强制类型转换。

注意事项

高位转低位的时候,需要注意,会存在精度丢失。比如上述 16 转 8 位的时候,就丢失了:

var n1 int16 = 130
fmt.Println(int8(n1)) // 变成 -126

其他常用类型转换

string 转成 int

int, err := strconv.Atoi(string)

int 转成 string

string := strconv.Itoa(int)

string 转成 int64

int64, err := strconv.ParseInt(string, 10, 64)

int64 转成 string

string := strconv.FormatInt(int64, 10)

float 转 string

func FormatFloat(f float64, fmt byte, prec, bitSize int) string

比如:

package mainimport ("fmt""strconv"
)func main() {num := 250.56str := strconv.FormatFloat(num, 'f', 4, 64)fmt.Printf("type:%T value:%#v\n", str, str)
}

输出:

type:string value:"250.5600"

类型转换的规则

类型转换只能在定义正确的情况下转换成功,例如从一个取值范围较小的类型转换到一个取值范围较大的类型(将 int16 转换为 int32)。

当从一个取值范围较大的类型转换到取值范围较小的类型时(将 int32 转换为 int16 或将 float32 转换为 int),会发生精度丢失(截断)的情况。浮点数在转换为整型时,会将小数部分去掉,只保留整数部分。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词