30. Go 语言拓展以有类型
AI 概述
1. 自定义复杂类型2. 别名3. 小结
在开发中,仅仅使用 Go 语言自带的变量是无法满足我们的业务需求的,就算勉强能满足,对我们整个项目代码后期的维护和其可读性,都会带来很大的不便。所以几乎所有语言都支持自定义数据类型,用于拓展已有的数据类型来适应日新月异的开发场景。在 Go 语言中可以使用 t...
目录
文章目录隐藏
在开发中,仅仅使用 Go 语言自带的变量是无法满足我们的业务需求的,就算勉强能满足,对我们整个项目代码后期的维护和其可读性,都会带来很大的不便。所以几乎所有语言都支持自定义数据类型,用于拓展已有的数据类型来适应日新月异的开发场景。在 Go 语言中可以使用 type 关键字自定义数据类型。
1. 自定义复杂类型
我们可以使用type Name Type去自定义一个全新的数据类型。这个类型的变量就使用Name来声明。通常 type 用于将一个复杂的数据类型定义为一个全新的数据类型,便于后续使用。
代码示例:
package main
import (
"fmt"
"reflect"
)
type stringList []string
func main() {
strList := stringList{"test1", "test2"}
fmt.Println("strList 的数据类型:", reflect.TypeOf(strList))
fmt.Println("strList 的值:", reflect.ValueOf(strList))
}
- 第 8 行:自定义一个数据类型,这个数据类型为字符串切片,命名为 stringList;
- 第 11 行:给变量 strList 定义为 stringList 类型并赋值;
- 第 12 行:打印 strList 的数据类型;
- 第 13 行:打印 strList 的值。
执行结果:

2. 别名
type 关键字还有一种用法,就是以已经存在的数据类型进行类型自定义,这种用法就叫做别名。顾名思义,就是给已经存在的数据类型起一个新名字。常用于使用常量来开发枚举功能时,也是前文在介绍使用常量代替枚举时的使用方式。
代码示例:
package main
import (
"fmt"
)
type Grade int
const (
FirstGrade Grade = iota
SecondGrade
ThirdGrade
FourthGrade
FifthGrade
SixthGrade
)
func main() {
fmt.Println("FirstGrade :", FirstGrade)
fmt.Println("SecondGrade:", SecondGrade)
fmt.Println("ThirdGrade :", ThirdGrade)
fmt.Println("FourthGrade:", FourthGrade)
fmt.Println("FifthGrade :", FifthGrade)
fmt.Println("SixthGrade :", SixthGrade)
}
- 第 7 行:给 int 类型定义一个名为 Grade 的别名。
执行结果:

3. 小结
本文主要介绍了自定义类型 type 关键字的两个用法:自定义复杂类型和别名。其实这两种用法的特性就是一致的,就是使用 type 关键字,在 Go 语言中定义了一种 Go 语言中原先不存在的数据类型。
以上关于30. Go 语言拓展以有类型的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 30. Go 语言拓展以有类型
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 30. Go 语言拓展以有类型

微信
支付宝