go语言架构 go语言架构设计( 四 )


例如我们为Student结构体的每个字段定义json序列化时使用的Tag:
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
【go语言架构 go语言架构设计】complex64 complex128
常量定义
2、类型转换
(1)Go语言不允许隐式类型转换(不支持小位数类型向大位数类型转)
(2)别名和原有类型也不能进行隐式类型转换(type MyInt int64 = int64)
3、类型的预定义值
1.math.MaxInt64
2.math.MaxFloat64
3.math.MaxUInt32
4、指针类型
(1)不支持指针运算
(2)string是值类型,其默认的初始化值为空字符串,而不是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
常?字符串函数
golang中级进阶(二):结构体目录
一、结构体详解
1. 结构体定义
2. 实例化结构体的7种方法
二、结构体方法
1. 结构体的方法定义
2. 结构体内自定义方法的引用
3. 任意类型添加方法
三、嵌套、继承
1. 匿名结构体
2. 结构体中可以定义任意类型的字段
3. 结构体嵌套结构体
4. 结构体嵌套匿名结构体
5. 结构体嵌套多个匿名结构体
6. 结构体继承
四、结构体和JSON相互转换
1. 结构体转化成json
2. json转化成结构体
3. 结构体标签 tag
4. 嵌套结构体和json的序列化反序列化
Golang 中没有“类”的概念go语言架构,Golang 中的结构体和其go语言架构他语言中的类有点相似 。和其他面向对 象语言中的类相比 , Golang 中的结构体具有更高的扩展性和灵活性 。
Golang 中的基础数据类型可以表示一些事物的基本属性 , 但是当我们想表达一个事物的全 部或部分属性时,这时候再用单一的基本数据类型就无法满足需求了,Golang 提供了一种 自定义数据类型,可以封装多个基本数据类型 , 这种数据类型叫结构体,英文名称 struct 。也就是我们可以通过 struct 来定义自己的类型了 。
使用 type 和 struct 关键字来定义结构体,具体代码格式如下:
type 类型名 struct {
字段名 字段类型
字段名 字段类型 …
}
其中:
? 类型名:表示自定义结构体的名称,在同一个包内不能重复 。
? 字段名:表示结构体字段名 。结构体中的字段名必须唯一 。
? 字段类型:表示结构体字段的具体类型 。
在 go 语言中,没有类的概念但是可以给类型(结构体,自定义类型)定义方法 。所谓方法 就是定义了接收者的函数 。接收者的概念就类似于其他语言中的 this 或者 self 。
方法的定义格式如下:
func (接收者变量 接收者类型) 方法名(参数列表) (返回参数) {

推荐阅读