第10讲 Go的type使用
本讲义根据视频实际讲解内容整理
一、本讲概述
本讲介绍了 Go 语言中 type 关键字的使用方法,包括如何用 type 声明自定义类型(基于底层类型),以及如何通过 type 定义结构体。老师还对比了 Go 结构体与 Java 实体类的相似之处。
二、type 关键字基本用法
2.1 类型声明语法
Go
type 类型名 底层类型
老师讲解道:
"使用 type 关键字声明一个类型,然后指定底层的类型。"
2.2 示例:基于 float 声明自定义类型
Go
type MyFloat float64
- 声明了一个名为
MyFloat的新类型 - 底层类型是
float64 - 声明后就可以像使用普通类型一样使用
MyFloat
"我声明好这个类型之后,以后就可以用这个类型了。"
三、自定义整数类型
3.1 创建多种自定义类型
老师演示了如何用 type 创建一系列自定义整数类型:
Go
package main
import "fmt"
func main() {
type MyInt8 int8
type MyInt16 int16
type MyInt32 int32
var a MyInt8 = 10
fmt.Println(a) // 10
}
"相当于我可以自己定义我的类型,这就了不起了吧。"
3.2 type 的意义
通过 type 关键字,开发者可以:
- 为现有类型起一个更有意义的名字
- 增强代码可读性
- 为不同用途的数据赋予不同的类型,避免混用
四、type 定义结构体
4.1 结构体声明
老师演示了用 type 定义结构体(struct),并将其与 Java 中的实体类做了对比:
Go
type MyStruct struct {
Value string
NumVer int8
}
4.2 使用结构体
Go
package main
import "fmt"
type MyStruct struct {
Value string
NumVer int8
}
func main() {
var s MyStruct
s.Value = "hello"
s.NumVer = 10
fmt.Println(s.Value) // hello
fmt.Println(s.NumVer) // 10
}
4.3 与 Java 实体类对比
老师指出:
"这有点类似于 Java 中的实体类。"
| Go 结构体 | Java 实体类 |
|---|---|
type MyStruct struct {...} |
class MyStruct {...} |
Value string |
private String value; |
NumVer int8 |
private byte numVer; |
| 变量名 + 类型 | 类型 + 变量名 |
Go 结构体的特点:
- 使用
type+struct关键字定义 - 字段声明顺序:字段名在前,类型在后(与 Java 相反)
- 可以直接通过
变量名.字段名访问
五、type 的核心要点
5.1 两种主要用法
Go
// 用法一:基于底层类型创建新类型
type MyInt int
// 用法二:定义结构体
type Person struct {
Name string
Age int
}
5.2 老师强调的点
- type 是 Go 的核心特性之一:老师提到"这是 Go 的核心"
- 结构体类似于 Java 的实体类:帮助有 Java 基础的同学理解
- 结构体内容后续详细讲:本讲只是先演示一下 type 的能力
六、小结
本讲介绍了 type 关键字的两种核心用法:
- 自定义类型:基于现有类型(如
int8、float64)创建新的命名类型 - 定义结构体:通过
type+struct创建自定义的复合数据结构
老师特别提到,结构体类似于 Java 中的实体类,后续会详细讲解。type 是 Go 语言的核心特性,掌握它对于后续学习结构体、接口等概念至关重要。