在Golang里有如下几种数据类型:整型、浮点型、布尔类型、 字符串 、复数类型、数组、map,下面通过简单的例子熟悉相关的数据类型:
整型
golang支持如下整型类型:
类型 | 长度(字节) | 取值范围 |
int8 | 1 | -128到127 |
uint8 | 1 | 0到255 |
int16 | 2 | -32768到32767 |
uint16 | 2 | 0到65535 |
int32 | 4 | -2147483648到2147483647 |
uint32 | 4 | 0到4294967295 |
int64 | 8 | -9223372036854775808到9223372036854775807 |
uint64 | 8 | 0到18446744073709551615 |
上面表格里没有int,uint,因为这两种类型是根据平台相关,uintptr则如同指针类型。我们要注意的是int和int32是两种不同的类型,在类型强制转换的时候要注意取值返回和长度的问题。至于基本的四则运算则和其他语言是一样,go里的四则 运算符 加减乘除求余分别为+、-、*、/、%,我们要注意的是求余运算为整型所独有的。大小比较和C++里是一样的。
浮点 型
golang里的浮点类型有float32和float64两种类型,float64的精度更高。
类型 | 最大值 | 最小 非负数 |
float32 | 3.402823466385288598117041834516925440e
+38 |
1.401298464324817070923729583289916131280e
-45 |
float64 | 1.797693134862315708145274237317043567981e
+308 |
4.940656458412465441765687928682213723651e
-324 |
注意下浮点型的数据大小比较不能使用”==”,要使用比较两个数之间的差在某个范围内的方式。
布尔类型
布尔类型的关键字是 bool ,取值就是true和false两种,golang里不支持布尔类型的强制转换。
字符串
字符串的关键字是string,string类型连接通过”+”来实现,取某个字符的内容可以通过下角标来获取,例如str[3],但字符串初始化后是不支持修改某个字符的。字符串的长度可以使用len()函数来获取,同时支持Printf()的格式化输出,后续再学习了。使用字符串的时候尤其要注意的是 字符编码 问题。go里标准库仅支持UTF-8和Unicode编码,其他的编码标准库没有内置的编码转换支持,需要寻找第三方开源库。
复数类型
复数类型分为实部和 虚部 ,对于某个复数z=complex(x,y)在golang里复数的实部可以通过real(z)来获取,虚部通过imag(z)来获取。
至于数组、map后面单独来学习!