Go语言,以其简洁的语法和强大的性能,已经成为现代软件开发领域中的重要力量。在Go语言的丰富特性中,基本数据类型扮演着至关重要的角色。它们是构建复杂程序的基础,是每一个Go程序的起点。正如学习任何新语言一样,了解其字母表(ABC)是掌握语言的关键第一步。在Go语言中,这意味着要熟悉其提供的基本数据类型。
Go语言的基本数据类型可以分为以下几个类别:
定义int类型
var int1 = 1fmt.Printf("int1类型:%T/n", int1)
输出结果:
int1类型:int
注意:%T 查看变量的类型
var i1 = 101fmt.Printf("%d/n", i1) //转成十进制fmt.Printf("%b/n", i1) //把十进制转成二级制fmt.Printf("%o/n", i1) //把十进制转成八进制fmt.Printf("%x/n", i1) //把十进制转成十六进制fmt.Println("-----")
输出结果:
数值为:101把十进制转成二级制:1100101把十进制转成八进制:145把十进制转成十六进制:65
八进制一定是以0开头的,逢八进一位
i2 := 077fmt.Printf("i2十进制:%d/n", i2)fmt.Printf("i2八进制:%o/n", i2)fmt.Printf("i2类型%T/n",i2)
输出结果
i2十进制:63i2八进制:77i2类型int
从0到f,逢十六进一
i3 := 0x1234567fmt.Printf("i3十进制:%d/n", i3)fmt.Printf("i3十流进制:%x/n", i3)// %T 查看变量的类型fmt.Printf("i3十进制数据类型:%T/n", i3)
输出结果
i3十进制:19088743i3十六进制:1234567i3十进制数据类型:int
总结:我们发现直接定义十进制、八进制、十六进制的变量,变量的类型都是int型。
我们怎么定义int8/int16/int32/int64类型的数据呢?
其实非常简单:
i4 := int8(1)i5 := int16(1)i6 := int32(1)i7 := int64(1)fmt.Printf("i4:%T/n", i4)fmt.Printf("i5:%T/n",i5)fmt.Printf("i6:%T/n",i6)fmt.Printf("i7:%T/n",i7)
输出结果:
i4:int8i5:int16i6:int32i7:int64
抛出问题:go有这么多种int类型,我们怎么选择使用哪种呢?
给出答案:
我们首先要知道这些类型的区别:
其中int类型要重点说一下:go语言中的 int 的大小是和操作系统位数相关的,如果是32位操作系统,int 类型的大小就是4字节。如果是64位操作系统,int 类型的大小就是8个字节。
由此我们可以知道,根据自己需要的字节数来选择,当然选择int类型是最省心安全的,但是当我们取值范围小的时候,会浪费存储空间。
go中的float可以细分为:float32和float64
f1 := 1.0fmt.Printf("f1类型:%T/n", f1) // Go语言中的小数默认类型是:float64
输出结果:
f1类型:float64
分析:在未指定类型定义float时,默认的类型是float64。和int类型的定义是一致的。
反思:这种设计我们也可以很好理解,出于数据安全的考虑,设置数据类型对应的最大内存空间的类型,避免内存溢出等问题。
聪明的你一定会想到,和定义int8是一样的
f2 := float32(1.4321)fmt.Printf("%T/n", f2)
输出结果:
f2类型:float32
我们可以通过内置的Math函数,获得常用的数值,比如:
var maxFloat = math.MaxFloat32;println(maxFloat)
输出结果:
+3.402823e+038
在go中,数据类型是有严格的区分的,不同类型之间是不能互相转换的,比如:
转载本文请联系「王中阳Go」公众号。
本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-93088-0.html掌握Go语言的基本数据类型:编程世界的ABC
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com