那么,类型转换允许程序员将一种数据类型转换成另外一种数据类型。你可能会问:我为什么要在golang中进行类型转换呢?好吧,如果你需要使用数据类型层面的某些特性,那你就不得不将数据实体从一种数据类型转换为另外一种数据类型。

比如,如果你有一个字节或者unit8的数据,而且,你希望将它转换成更大的数据类型来进行算术运算,那么你就需要用到类型转换。所以,你准备好开始学习golang的类型转换了吗?

让我们更深入一些吧!

在golang中,我们使用表达式T(v)的格式来将数据v转换成类型T的数据。下面的例子说明了如何将数值从一种数据类型转换成另外一种数据类型:

var amount int = 80
var amount2 float64 = float64 (amount)
var amount3 uint = uint (f)

可以简化成:

amount: = 80
amount2:= float64 (amount)
amount3:= uint (f)

golang中类型转换,需要注意的几点是:如果对不同的数据类型赋值,则必须进行显示转换。这就是为什么在golang的类型转换中,区分使用": =" 或 "var = 表达"是很重要的。

例如,当声明一个变量而不指定为显式数据类型 (通过使用 “: = 语法” 或 “var = 表达式语法”) 时,将从右侧显示的值推断变量的数据类型。如果声明的右侧是类型化的, 则新变量将具有相同的数据类型。下面是例子:

var amount int
amount1:= amount // In this case, amount is of int data type

现在,当等式右边是一个不确定类型的数据会时,发生什么情况呢?那么,当等式右边是一个不确定类型的数值常量时,则变量(在这个例子中是amount1)可能会根据你给定的常量的精度,被赋值一个int,float64,甚至complex128的数值。

下面的示例,刚好说明了这一点:

i: = 42             // This is an int data type depending on the accuracy. 
pi: = 3.142         // This is a float64 data type depending on the precision. 
b := 0.867   0.5i   // This is a complex128 depending on the precision. 

原文链接:http://blog.stoneriverelearning.com/a-guide-to-types-and-casting-in-golang/

到此这篇关于“golang中的类型及类型转换指南”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!