💜 想真正擅长编程? 从一门课程开始,100% 免费

《笔记》第十篇 Go的type使用

第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 老师强调的点

  1. type 是 Go 的核心特性之一:老师提到"这是 Go 的核心"
  2. 结构体类似于 Java 的实体类:帮助有 Java 基础的同学理解
  3. 结构体内容后续详细讲:本讲只是先演示一下 type 的能力

六、小结

本讲介绍了 type 关键字的两种核心用法:

  1. 自定义类型:基于现有类型(如 int8、float64)创建新的命名类型
  2. 定义结构体:通过 type + struct 创建自定义的复合数据结构

老师特别提到,结构体类似于 Java 中的实体类,后续会详细讲解。type 是 Go 语言的核心特性,掌握它对于后续学习结构体、接口等概念至关重要。