go语言数据类型 go语言的数据结构

Go数据结构篇1、基本数据类型
bool
string
intint8 int16 int32 int64
uintuint8 uint16 uint32 uint64 uintptr
byte // alias for int8
rune // alias for int32,represents a Unicode code point
float32 float64
complex64 complex128
常量定义
2、类型转换
(1)Go语言不允许隐式类型转换(不支持小位数类型向大位数类型转)
(2)别名和原有类型也不能进行隐式类型转换(type MyInt int64 = int64)
3、类型go语言数据类型的预定义值
1.math.MaxInt64
2.math.MaxFloat64
【go语言数据类型 go语言的数据结构】3.math.MaxUInt32
4、指针类型
(1)不支持指针运算
(2)string是值类型go语言数据类型 , 其默认的初始化值为空字符串go语言数据类型 , 而不是nil
5、算术运算符
+ - * / % ++ --(不支持前置++ --)
6、比较运算符
#==!===
(1)比较数组
相同维数且含有形同个数元素的数组才可以比较
每个元素都相同的才相等
7、位运算符
| ^
^ (按位置零)a(^b)
1^01
1^10
0^10
0^00
8、条件与循环
(1)循环
Go 语?仅?持循环关键字 for
(2)条件
9、数组和切片
数组截?。?索引下标从0开始计数
a[开始索引(包含), 结束索引(不包含)]
a := [...]int{1, 2, 3, 4, 5}
a[1:2] //2
a[1:3] //2,3
a[1:len(a)] //2,3,4,5
a[1:] //2,3,4,5
a[:3] //1,2,3
切片内部结构
9、Map
9、字符串
Unicode UTF8
常?字符串函数
go语言中 int8是什么类型C语言中变量go语言数据类型的声明/定义格式如下:存储类型类型修饰符数据类型变量名;存储类型:用来指明变量的存储位置go语言数据类型,即运行该变量在哪一段分配内存空间go语言数据类型,常见的存储位置有auto、extern、register、staticgo语言数据类型,在一段执行程序中go语言数据类型,可以为变量分配存储空间的有BSS、数据区、栈区、堆区 。类型修饰符:用来修饰变量的存储和表现方式 。包括long、short、signed、unsigned、void、const、volatile等 。数据类型:用来指明该变量的存储大小,即一个该类型的变量要占用多少内存空间 。基本数据类型有(char、int、float、指针类型)和由基本数据类型组成的用户自定义类型(struct、enum、typedef、union)
没有类,C语言有结构体,那么Go的结构体有什么特别之处? Go语言中没有“类”的概念 , 也不支持“类”的继承等面向对象的概念 。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性 。
自定义类型
在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型 ,  Go语言中可以使用type关键字来定义自定义类型 。
自定义类型是定义了一个全新的类型 。我们可以基于内置的基本类型定义,也可以通过struct定义 。例如:
通过Type关键字的定义 , MyInt就是一种新的类型,它具有int的特性 。
类型别名
类型别名是Go1.9版本添加的新功能 。
类型别名规定:TypeAlias只是Type的别名,本质上TypeAlias与Type是同一个类型 。就像一个孩子小时候有小名、乳名,上学后用学名,英语老师又会给他起英文名,但这些名字都指的是他本人 。
type TypeAlias = Type
我们之前见过的rune和byte就是类型别名 , 他们的定义如下:
类型定义和类型别名的区别
类型别名与类型定义表面上看只有一个等号的差异,我们通过下面的这段代码来理解它们之间的区别 。

推荐阅读