在这里,我们介绍一下,在go语言中的数据类型、关键字以及标识符。
数据类型
基本数据类型
-
布尔型:只可以是常量 true 或者 false。如,var b bool = true
-
数字类型:数字类型分为整型以及浮点型。其中:
整数类型(int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,byte,rune(和int32差不多,处理有中文的字符)
注意:int8代表占一个字节的类型,int16代表占两个字节的类型,以此类推,前面有u代表无符号的,int8与uint8所表示的范围不同,int8表示的范围是-128 ~ 127,uint8表示的范围是0 ~ 255。byte是占一个字节的类型,无声明时,程序默认声明是int型。
- 浮点类型:(float32(单精度),float64(双精度),一般默认声明为float64类型。我们一般使用常量 math.MaxFloat32 表示 float32 能取到的最大数值,大约是 3.4e38。然后使用常量 math.MaxFloat64 表示 float64 能取到的最大数值,大约是 1.8e308。
float32 和 float64 能表示的最小值分别为 1.4e-45 和 4.9e-324。
浮点数在声明的时候可以只写整数部分或者小数部分。
const e = .71828
const f = 1.
此外, 很小或很大的数最好用科学计数法书写,通过 e 或 E 来指定指数部分
const Avogadro = 6.02214129e23
const Planck = 6.62606957e-34
-
位的运算采用补码字符串类型:字符串就是一串固定长度的字符连接起来的字符序列,Go 的字符串是由单个字节连接起来。此外,Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本,表示 Unicode 字符的 rune 类型和 int32 类型是等价的,通常用于表示一个 Unicode 码点,是等价的。
-
复数类型:complex128(64 位实数和虚数)和 complex64(32 位实数和虚数),其中 complex128 为复数的默认类型。
复数的值由三部分组成 RE + IMi,其中 RE 是实数部分,IM 是虚数部分,RE 和 IM 均为 float 类型,而最后的 i 是虚数单位。
var name complex128 = complex(x, y)
或者
z := complex(x, y)
x = real(z)
y = imag(z)
当然, 复数也可以用==和!=进行相等比较,只有两个复数的实部和虚部都相等的时候它们才是相等的
派生类型
指针类型(Pointer)
数组类型
结构化类型(struct)
Channel 类型
函数类型
切片类型
接口类型(interface)
Map 类型
byte 和 uint8 也是等价类型,byte 类型一般用于强调数值是一个原始的数据而不是一个小的整数。
无符号的整数类型 uintptr,它没有指定具体的 bit 大小但是足以容纳指针。只有在底层编程时才需要,特别是Go语言和C语言函数库或操作系统接口相交互的地方。
有符号整数采用 2 的补码形式表示,也就是最高 bit 位用来表示符号位,一个 n-bit 的有符号数的取值范围是从 -2(n-1) 到 2(n-1)-1。无符号整数的所有 bit 位都用于表示非负数,取值范围是 0 到 2n-1。
关键字
在这里,我列出go语言中的25个关键字:
标识符
在这里,我列出go语言中的36个标识符:
预定义标识符: true、false、iota、nil、
int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64、uintptr、float32、float64、complex64、complex128、bool、byte、rune、string、error、make、len、cap、new、append、copy、delete、complex、real、imag、panic、recover
其实标识符也可以用于命名。
但是当用于命名变量、类型等程序实体时,一个标识符实际上就是一个或是多个字母(A~ Z和a~ z)数字(0~9)、下划线“_”组成的序列,但是第一个字符必须是字母或下划线而不能是数字。
其他
程序一般由关键字、常量、变量、运算符、类型和函数组成。
程序中可能会使用到这些分隔符:括号 (),中括号 [] 和大括号 {}。
程序中可能会使用到这些标点符号:.、,、;、: 和 …。
一般来说:
- func为用于定义函数和方法
- return为从函数返回
- go用于并行
- select用于选择不同类型的通讯