Go语言有哪些数据类型?

Go语言提供了丰富的内置数据类型,可以分为以下几类:

1.基本数据类型

布尔型 (bool):表示逻辑值 true 或 false。
整数型
int:普通整数,大小取决于平台(32位或64位)。
int8:8位有符号整数。
int16:16位有符号整数。
int32:32位有符号整数。
int64:64位有符号整数。
uint:无符号整数,大小取决于平台(32位或64位)。
uint8:8位无符号整数。
uint16:16位无符号整数。
uint32:32位无符号整数。
uint64:64位无符号整数。
浮点型
float32:32位浮点数。
float64:64位浮点数(通常的浮点数类型)。
复数型
complex64:实部和虚部都是32位浮点数的复数。
complex128:实部和虚部都是64位浮点数的复数。
字符串型 (string):UTF-8编码的文本。

2.复合数据类型

数组:固定长度的相同类型元素序列。

var arr [5]int

切片(slice):可变长度的相同类型元素序列。

var slice []int

结构体(struct):一种聚合数据类型,可以包含不同类型的数据。

type Point struct {
    
    
    X, Y int
}

指针:存储变量内存地址的变量。

var p *int

函数:可以作为类型存储和传递。

func myFunction() {
    
    }
var f func()

接口(interface):定义了一组方法的集合,任何实现了这些方法的类型都满足该接口。

type Reader interface {
    
    
    Read(p []byte) (n int, err error)
}

映射(map):键值对的集合,键必须是相同的类型,值可以是不同的类型。

var m map[string]int

通道(channel):用于在goroutine之间同步和传递数据。

var ch chan int

3.特殊数据类型

空值 (nil):表示没有任何值。
错误 (error):用于错误处理,是一个内建的接口类型。

这些数据类型构成了Go语言的基础,使得Go语言能够处理各种编程任务。