mobi文档 Golang 101(Go语言101 中文版) v1.21.a

1.08 MB 608 页 0 评论
语言 格式 评分
中文(简体)
.mobi
3
摘要
文档详细介绍了Go语言的结构体类型及其内存布局,包括字段声明、标签和内存对齐。还解释了函数的声明和调用形式,包括参数列表和返回值。类型内嵌的概念及其语法也得到了阐述,其他核心内容包括关键字和标识符的定义与用法。基本流程控制语法部分涵盖了条件分支、循环和switch-case结构。这些内容构成了Go语言的基础知识,帮助读者理解其语法和特性。
AI总结
### 总结 #### 结构体 1. **定义与语法**: - 使用 `struct` 关键字定义,包含字段。 - 字段由名称和类型组成,也可以匿名内嵌类型。 - 结构体内存布局包含字段大小和填充字节,零字段结构体大小为零。 - 字段标签是字符串,通常用键值对表示,用于标识字段信息。 2. **示例**: ```go struct { title, author string pages int } ``` 3. **特殊情况**: - 相邻同类型字段可合并声明。 - 编译器添加填充字节以对齐内存地址。 #### 函数声明 1. **语法结构**: - `func` 关键字开头,包含函数名、参数列表、返回值列表和函数体。 - 参数和返回值由名字和类型组成,支持多个返回值。 2. **示例**: ```go func SquaresOfSumAndDiff(a int64, b int64) (s int64, d int64) { x, y := a + b, a - b s = x * x d = y * y return } ``` 3. **特点**: - 支持多返回值,使用 `return` 语句终止函数。 - 参数和返回值声明类似变量声明,省略 `var` 关键字。 #### 类型内嵌 1. **定义**: - 字段仅含类型,无需字段名,称为匿名字段或内嵌字段。 - 字段名由内嵌类型名决定,支持方法继承。 2. **示例**: ```go var x struct { string // 具名非指针类型 error // 具名接口类型 *int // 无名指针类型 P // 无名指针类型的别名 M // 无名类型的别名 http.Header // 具名映射类型 } ``` 3. **应用场景**: - 常用于代码简化和方法继承,特别是在结构体组合中。 #### Go语言简介 1. **语言特性**: - 编译型、静态语言。 - 并发编程支持协程和通道。 - 内置容器类型(切片、映射)。 - 支持多态、接口、指针、闭包、延迟函数调用、类型推断。 - 内存安全、垃圾回收、跨平台。 - 从1.18起支持泛型。 2. **优势**: - 简洁语法,易于学习。 - 标准库齐全,社区活跃。 #### 类型分类 1. **单一内存块类型**: - 布尔、数值、指针、非类型安全指针、结构体、数组。 2. **多内存块分布类型**: - 字符串、切片、映射、通道、函数、接口。 #### 关键字和标识符 1. **关键字**: - 25个,包括 `func`, `var`, `chan`, `interface`, `map`, `struct` 等。 2. **标识符**: - 以字母或下划线开头,包含字母、数字,与关键字不同名。 3. **作用**: - 关键字用于语法结构,标识符用于命名变量、函数、类型等。 #### 流程控制语法 1. **基本结构**: - `if-else` 条件分支。 - `for` 循环,支持传统和 `for-range` 两种。 - `switch-case` 多条件分支。 2. **跳转语句**: - `break` 跳出循环或分支。 - `continue` 跳过循环体。 - `goto` 跳转到标签。 - `fallthrough`_Helper 层落通过。 3. **特性**: - 支持协程和延迟函数调用。 - 特殊的 `select-case` 用于通道选择。 通过以上总结,可以清晰了解到Golang的结构体、函数、类型系统、语言特性和流程控制的核心内容。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 601 页请下载阅读 -
文档评分
请文明评论,理性发言.