在Go编程语言中,数据类型用于声明函数和变量
数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。

Go语言按类别有以下几种数据类型:

序号 类型和描述
1 布尔型 布尔型的值只可以时常量true或者false。一个简单的例子:var b bool = true
2 数字类型 整型int和浮点型float32、float64, Go语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码
3 字符串类型 字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连起来的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本
4 派生类 包括:(a)指针类型(Pointer) (b)数组类型 ©结构化类型(struct) (d)Channel类型 (e)函数类型 (f)切片类型 (g)接口类型(interface) (h)Map类型

举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package main

import "fmt"

func main() {
var name string = "tom"
age := 20
b := true
c := &age
d := [...]int{1, 2, 3}
f := []string{"a", "b", "c"}
e := func() {}
fmt.Printf("%T\n", name)
fmt.Printf("%T\n", age)
fmt.Printf("%T\n", b)
fmt.Printf("%T\n", c)
fmt.Printf("%T\n", d)
fmt.Printf("%T\n", f)
fmt.Printf("%T\n", e)
}

执行结果:

1
2
3
4
5
6
7
string
int
bool
*int
[3]int
[]string
func()

数字类型

Go也有基于架构的类型,例如:int、uint和uintptr

序号 类型和描述
1 uint8 无符号8位整型(0到55)
2 uint16 无符号16位整型(0到65535)
2 uint32 无符号32位整型(0到4294967295)
2 uint64 无符号64位整型(0到18446744073709551615)
2 int8 有符号8位整型(-128到127)
2 int16 有符号16位整型(-32768到32767)
2 int32 有符号32位整型(-2147483648到2147483647)
2 int64 有符号64位整型(-9223372936854775808到9223372036854775807)

浮点型

序号 类型和描述
1 float32 32位浮点型数
2 float64 64位浮点型数
3 complex64 32位实数和虚数
3 complex128 64 位实数和虚数

其他数字类型

序号 类型和描述
1 byte类似uint8
2 rune类似int32
3 uint32或64位
4 int与uint一样大小
4 uintptr无符号整型,用于存放一个指针