Go语言复合类型深度解析
73 浏览量
更新于2024-09-01
收藏 85KB PDF 举报
"本资源主要涵盖了GO语言的复合类型,包括结构体、指针类型、数组和切片以及映射类型。通过学习,读者将能够深入理解这些概念,并掌握如何在Go语言中使用它们。"
在GO语言中,复合类型是编程中不可或缺的一部分,它们允许我们创建更复杂的自定义数据结构。本专题首先介绍了指针类型,指针不存储实际的数据,而是存储数据的内存地址。使用`&`运算符可以获取变量的内存地址,而`*`运算符则用于访问存储在该地址的值。例如:
```go
a := 3
pa := &a // 获取a的地址
fmt.Println("point", a, *pa) // 访问指向的内存
```
当只声明未赋值的指针时,其值为`nil`,表示空指针。
接下来,文章讲解了结构体(struct),这是Go语言中的一种聚合数据类型,可以包含多个不同类型的数据成员。结构体的定义如下:
```go
type Test struct {
a int
b int
}
```
结构体的初始化有多种方式:可以直接初始化所有字段,部分初始化,或者隐式初始化为零值。例如:
```go
test := Test{1, 2} // 初始化所有字段
t2 := Test{a: 3} // 只初始化a,b默认为0
t3 := Test{} // 隐式初始化所有字段为0
```
此外,可以同时声明和初始化多个结构体变量,包括指针类型:
```go
var (
t1 = Test{8, 6}
t2 = Test{a: 3} // 指定赋值Test.a,Test.b隐式赋值0
t3 = Test{} // .a.b都隐式赋值0
pt4 = &Test{8, 6} // 结构体指针
)
```
访问结构体成员使用`.`运算符,无论结构体变量还是结构体指针,都可以直接访问:
```go
fmt.Println("stru", t1.a, t1.b)
```
数组在Go语言中是固定大小的,一旦声明长度就不可更改。切片(slice)则是数组的动态视图,可以增长和收缩。映射(map)提供了键值对的存储,类似于其他语言中的字典或哈希表。
数组的声明通常包括元素类型和长度,如`var arr [5]int`。切片可以通过`make`函数创建,或从数组创建,如`s := arr[:3]`。映射的声明和初始化可以这样进行:
```go
m := make(map[string]int)
m["key"] = 123
```
通过以上内容,读者将对Go语言的复合类型有一个全面的了解,包括如何定义、初始化和操作这些类型,从而更好地在实际项目中运用Go语言。
2021-09-18 上传
2021-09-09 上传
2021-09-08 上传
点击了解资源详情
2021-09-09 上传
2021-08-19 上传
2021-08-05 上传
2021-08-19 上传
2021-10-07 上传
weixin_38681147
- 粉丝: 7
- 资源: 937
最新资源
- IEEE 14总线系统Simulink模型开发指南与案例研究
- STLinkV2.J16.S4固件更新与应用指南
- Java并发处理的实用示例分析
- Linux下简化部署与日志查看的Shell脚本工具
- Maven增量编译技术详解及应用示例
- MyEclipse 2021.5.24a最新版本发布
- Indore探索前端代码库使用指南与开发环境搭建
- 电子技术基础数字部分PPT课件第六版康华光
- MySQL 8.0.25版本可视化安装包详细介绍
- 易语言实现主流搜索引擎快速集成
- 使用asyncio-sse包装器实现服务器事件推送简易指南
- Java高级开发工程师面试要点总结
- R语言项目ClearningData-Proj1的数据处理
- VFP成本费用计算系统源码及论文全面解析
- Qt5与C++打造书籍管理系统教程
- React 应用入门:开发、测试及生产部署教程