数据类型有哪几种类型

100人浏览   2024-10-28 09:46:10

Go语言提供了非常丰富的数据类型,可分为以下四大类:

基础类型:整数类型(int)、浮点类型(float)、字符串类型(string)、布尔类型(bool)、复数类型(complex)、错误(error)

复合类型:数组(array)、结构体(struct)

引用类型:字典(map)、切片(slice)、通道(channel)、函数(func)、指针(pointer)

接口类型:接口(interface)


整数类型(int)

整数类型用来描述整数。

图:整型数据范围

浮点类型(float)

浮点类型用来描述小数。

图:浮点型数据范围

字符串类型(string)

字符串是开发中最常用的数据类型,字符串类型是只读的,其值不可更改。

布尔类型(bool)

布尔类型只有true和false两个值,默认值false。

数组(array)

数组描述了相同类型的一组数据,数组一旦定义后其长度就确定了且不能被修改。

结构体(struct)

结构体将基础数据类型通过组合的方式,形成一个自定义的类型,以下定义了一个学生类型的结构体。

//学生结构体
type Student struct {
	//学号ID
	Id int64
	//姓名
	Name string
	//班级ID
	Class int8
}

结构体相当于其他高级语言中的类(class)。

字典(map)

Go中的字典是一个Key-Value结构的数据结构,使用map来定义,默认值为nil。

切片(slice)

切片可以理解成动态数据,可以根据需要自动增加其长度和容量,当元素个数超过切片容量时,会以成倍增加方式来扩容,切片默认值为nil。

通道(channel)

通道是Go中非常核心的数据类型,主要用于协程间的通信,Go哲学是不要通过共享内存通信,应该通过通信共享内存,通道默认值为nil。

指针(pointer)

Go中的指针是安全的,也可以通过其他手段进行指针转换,其只有两种运算符,

*运算符是取出其值,&运算符是取变更的地址,默认值nil。

函数(func)

函数是Go中的一等公民,通常封装了一段共用的代码块,减少重复开发工作。

接口(interface)

接口定义了一组行为,实现了该接口类型的对象就属于该接口类型,空接口可以表示任何类型,默认值nil。