Golang是google发布的开源编程语言,这里就不对其进行过多介绍,网上有很多文章已经把它的前身后世都介绍的很清楚了,有兴趣的可以去查阅,前几天刚开始接触Golang的开发,今天抽空在开发之余对其做一些整理,今天要说的就是Golang的基本数据类型。
单纯的介绍数据类型,没有任何意义,无非就是几几个类型,明白表示什么意思,但是一门语言要设置那么一些数据类型肯定是有它的原因的。我们需要了解一下不同的数据类型在内存中的形式。
首先来了解几个概念,bit(比特位),byte(字节),word(字)这三个概念以及它们之间的关系。
计算机是很多电路的集成,在计算机中每一个闭合电路只有 0, 1两种状态。所以数据在计算机中是以二进制(只有0和1组成)形式存在的。所以计算机的本质就是就是对0,1的操作。bit是信息的最小单位,就是指一个信息位。0或者1表示的就是1bit,所以0000就是4个bit。相应的字节与位之间存在关系1byte = 8bit, 而word则与系统硬件(总线,cpu指令字位数等)有关,比如数据总线为16位,则1word=2byte, 如果32位则有1word=4byte。存储容量通常使用byte表示,并且与硬件无关即1byte=8bit。在计算机中还涉及到一个概念就是CPU的位数,即计算机CPU一次能处理的的bit位数,比如常见的有32位和64位,就对应着32bit和64bit,即4byte或者8byte。
我们还需要了解一下字符与字节之间的的关系。这就会涉及到编码的问题。常见的编码有ASCII编码,UTF-8编码,Unicode编码,在不同编码方式下的字节与字符的关系描述如下:
ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。
UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。
Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。
符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。
在了解了这些基本的概念之后我们再去学习编程语言中的数据类型,就比较好理解了,而且也比较容易掌握它。