一、基本数据类型
在 Go 编程语言中,数据类型用于声明函数和变量。
数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。
Go 基本数据类型
| 类别 | 类型 | 描述 | 零值 | 示例 | 取值范围 | 
|---|---|---|---|---|---|
| 布尔型 | bool | 
逻辑值,表示真或假 | false | 
true, false | 
true 或 false | 
| 整数型 | int | 
平台相关有符号整数(32位系统=32位,64位系统=64位) | 0 | 
42, -10 | 
32位系统:-2³¹ ~ 2³¹-1 64位系统:-2⁶³ ~ 2⁶³-1 | 
int8 | 
8位有符号整数 | 0 | 
127, -128 | 
-128 ~ 127 | 
|
int16 | 
16位有符号整数 | 0 | 
32767, -32768 | 
-32768 ~ 32767 | 
|
int32 | 
32位有符号整数(别名 rune) | 
0 | 
2147483647 | 
-2147483648 ~ 2147483647 | 
|
int64 | 
64位有符号整数 | 0 | 
9223372036854775807 | 
-9223372036854775808 ~ 9223372036854775807 | 
|
uint | 
平台相关无符号整数(大小同 int) | 
0 | 
100 | 
32位系统:0 ~ 2³²-1 64位系统:0 ~ 2⁶⁴-1 | 
|
uint8 | 
8位无符号整数(别名 byte) | 
0 | 
255, 0x0A | 
0 ~ 255 | 
|
uint16 | 
16位无符号整数 | 0 | 
65535 | 
0 ~ 65535 | 
|
uint32 | 
32位无符号整数 | 0 | 
4294967295 | 
0 ~ 4294967295 | 
|
uint64 | 
64位无符号整数 | 0 | 
18446744073709551615 | 
0 ~ 18446744073709551615 | 
|
uintptr | 
无符号整数,用于存储指针地址 | 0 | 
系统内存地址 | 足够存储指针值的整数 | |
| 浮点型 | float32 | 
IEEE-754 32位单精度浮点数 | 0.0 | 
3.14, -0.001 | 
约 ±1.18e⁻³⁸ ~ ±3.4e³⁸,精度约6位小数 | 
float64 | 
IEEE-754 64位双精度浮点数(默认浮点类型) | 0.0 | 
3.1415926535, -2.5e10 | 
约 ±2.23e⁻³⁰⁸ ~ ±1.8e³⁰⁸,精度约15位小数 | 
|
| 复数型 | complex64 | 
由两个 float32 组成(实部+虚部) | 
(0+0i) | 
1+2i, 3i | 
实部/虚部范围同 float32 | 
complex128 | 
由两个 float64 组成(实部+虚部) | 
(0+0i) | 
1.5+3.2i | 
实部/虚部范围同 float64 | 
|
| 字符串型 | string | 
不可变的 UTF-8 字符序列 | "" | 
"Hello", "世界" | 
任意字节序列(支持 Unicode) | 
| 字节别名 | byte | 
uint8 的别名,用于二进制数据 | 
0 | 
'a', 0x41 | 
同 uint8 (0 ~ 255) | 
| 字符别名 | rune | 
int32 的别名,表示 Unicode 码点 | 
0 | 
'中', '\u4e2d' | 
同 int32(支持所有 Unicode 字符) | 

同其它编程语言一样,go的数据类型基本覆盖人类文化内容,数字、字符串、布尔、复数
二、常量
在go的国度中,根据上边的划定的范围,可以进行创建常量和变量了。先来看下常量...
            
            
              go
              
              
            
          
          // 常量定义格式
const 常量名 [常量类型] = 值
        学了其它编程语言的,看到这感觉不适应的,你的感觉没错,新的知识正在占领大脑!
从上边的定义格式,可以看到:
- const: 定义常量使用的是"const"关键词
 - 常量名: 以后使用常量的话,尽量使用大写进行命名,并使用下划线分词
 - 常量类型:只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型
 - 
\]中括号:可以进行省略,自动根据值进行类型推导
 
            
            
              go
              
              
            
          
          	// 常量
	// 显式声明
	// const LENGTH int = 10
	// 隐式声明 根据值 进行推导出数据类型
	const Length = 10
	// 不能进行修改
	Length = 20
	fmt.Println(Length)
        
另外,对于多个相同类型的声明可以简写为:
            
            
              go
              
              
            
          
          const Length, WIDTH = 10, 20
        三、变量

变量怎么比喻呢?
我这边为了更好的理解,使用了上边的老中医药材柜图片,如果把各种各样的数据看作是各种药材的话!
每个抽屉代表go开辟的内存空间,进行储存药材(变量值),而外边的名称就是变量名(见名识意)!
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。
声明变量的一般形式是使用 var 关键字:
            
            
              go
              
              
            
          
          var 变量名 变量类型
        可以了解到:
- var:声明变量使用"var"关键词
 - 变量名:由字母、数字、下划线组成,其中首个字符不能为数字
 - 变量类型:基本数据类型和符合类型
 - 值:上边没有赋值,后续进行赋值操作。如果声明的时候进行赋值,可以省略变量类型,原因是go可以进行类型推导
 
            
            
              go
              
              
            
          
              // 变量
	// 变量声明
	// 第一种 声明后赋值
	var length int
	length = 10
	// 第二种 声明时赋值
	//var width int = 20
	// 也可以去掉 变量类型 使用类型推导
	var width = 20
	// 第三种 省略var  注意 := 左侧的变量名 是没有声明过的,否则编辑报错
	height := 30
	fmt.Println(length, width, height)
        多个变量同时声明
            
            
              go
              
              
            
          
          	// 多个变量声明 省略类型 进行类型推导
	var a, b, c = 10, 20.8, "hello"
	fmt.Println(a, b, c)
        四、关键字
什么是关键字,就是go语言已经使用过的关键词,我们不能再使用了,命名包名、文件名、声明变量名、函数名等,为了避免冲突不能使用!
下面列举了 Go 代码中会使用到的 25 个关键字或保留字:
| break | default | func | interface | select | 
|---|---|---|---|---|
| case | defer | go | map | struct | 
| chan | else | goto | package | switch | 
| const | fallthrough | if | range | type | 
| continue | for | import | return | var | 
除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符:
| append | bool | byte | cap | close | complex | complex64 | complex128 | uint16 | 
|---|---|---|---|---|---|---|---|---|
| copy | false | float32 | float64 | imag | int | int8 | int16 | uint32 | 
| int32 | int64 | iota | len | make | new | nil | panic | uint64 | 
| println | real | recover | string | true | uint | uint8 | uintptr | 
程序一般由关键字、常量、变量、运算符、类型和函数组成。
附
本次作业
- 熟练知道go的数据类型,说一个值,要立即反应出该值的数据类型
 - 会声明常量/变量的
 - 了解有哪些关键字,避免后续命名冲突