北京南站列车时刻表,5 网站建设进度表,网站建设之后,龙岩网站设计理念文章目录 3.Go语言的数据结构#xff1a;3.1. 指针3.2. struct#xff08;结构体#xff09;3.3. Map(映射,哈希#xff09; 3.Go语言的数据结构#xff1a;
简介#xff1a; 在Go语言中#xff0c;数据结构体可以分为四种类型#xff1a;基础类型、聚合类型、引用类型… 文章目录 3.Go语言的数据结构3.1. 指针3.2. struct结构体3.3. Map(映射,哈希 3.Go语言的数据结构
简介 在Go语言中数据结构体可以分为四种类型基础类型、聚合类型、引用类型和接口类型。下面是对这四种类型的介绍
基础类型包括整型有符号和无符号整数、浮点数、复数、字符串由不可变的字节序列构成、布尔值只有true和false两个值。聚合类型包括数组和结构体。其中结构体是由任意个任意类型的变量组合在一起的数据类型。引用类型包括指针、Slice是一个拥有相同元素的可变长度序列、map、function和channel。接口类型用于定义接口实现接口可以获得多态性。
其中基础类型比较简单就不过多介绍重点是其他几种类型
3.1. 指针
在 Go 语言中指针是一种用于引用其他变量的变量。通过使用指针你可以间接访问或修改指向变量的值。
指针的声明使用*操作符例如
var x int 10
var p *int x在上面的示例中x是一个整数变量而p是一个指向整数的指针变量。通过x将x的地址赋值给p。
使用指针可以通过*操作符来间接访问指向变量的值
fmt.Println(*p) 通过*p可以获取p所指向变量x的值。
指针还可以用于修改指向变量的值
*p 20 通过*p 20将 20 赋值给p所指向变量x。 需要注意的是使用指针时要确保指针指向的变量类型与指针的类型相匹配否则会导致编译错误。
3.2. struct结构体
在 Go 语言中结构体struct是一种用户自定义的数据类型可以用来组织多个不同类型的数据成员。
结构体的声明使用struct关键字例如
type Person struct {Name stringAge int
}在上面的示例中定义了一个名为Person的结构体它包含了两个数据成员Name字符串类型和Age整数类型。
创建结构体变量并赋值
p : Person{Name: Alice,Age: 25,
}可以通过点号操作符来访问和修改结构体成员的值
fmt.Println(p.Name)
fmt.Println(p.Age) p.Age 30fmt.Println(p.Age) 结构体还可以用于嵌套其他结构体
type Address struct {Country stringCity string
}type Person struct {Name stringAge intAddress
}在上面的示例中Person结构体包含了一个嵌套的Address结构体。
结构体还可以实现方法
type Person struct {Name stringAge int
}func (p Person) SayHello() {fmt.Println(Hello, my name is, p.Name)
}在上面的示例中为Person结构体实现了一个名为SayHello的方法。
类比其他语言struct相当于java中的类区别是在go语言中struct中只写变量并不写方法具体含有的方法是根据方法在其他地方添加给他具体看方法的介绍
3.3. Map(映射,哈希
在 Go 语言中映射map是一种无序的键值对数据结构。它用于存储一组键值对其中键可以是任何类型而值可以是任何类型。
映射的声明使用map关键字例如
var m map[string]int在上面的示例中创建了一个名为m的空映射其中键的类型为字符串值的类型为整数。
向映射中添加键值对
m[key] value通过键来访问映射中的值
value, ok : m[key]使用delete函数来删除映射中的键值对
delete(m, key)len函数返回映射中键值对的数量
count : len(m)需要注意的是映射中的键必须是可哈希的因为映射是基于哈希表实现的。这意味着你不能使用函数、切片或映射作为映射的键。
今天先更新这么多下次补全切片与数组channel接口等。