Golang type的两种用法
1、自定义类型
在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型,Go语言中可以使用type关键字来定义自定义类型。
自定义类型是定义了一个全新的类型。我们可以基于内置的基本类型定义,也可以通过struct或者函数类型来定义。
1 2 | //将KubeInt定义为int类型 type KubeInt int |
通过Type关键字的定义,KubeInt就是一种新的类型,它具有int的特性,但是他们不是同一种类型。
1 2 3 4 5 6 7 8 9 10 11 12 | package main import "fmt" type Kubeint int func main() { var kubeint Kubeint = 1 var orint int = 2 fmt.Printf( "%T,%d\n" , kubeint, kubeint) fmt.Printf( "%T,%d" , orint, orint) } |
输出:
1 2 | main.Kubeint,1 int,2 |
2、类型别名
类型别名是Go1.9版本添加的新功能。
类型别名规定:TypeAlias只是Type的别名,本质上TypeAlias与Type是同一个类型。就像一个孩子小时候有小名、乳名,上学后用学名,英语老师又会给他起英文名,但这些名字都指的是他本人。
1 2 | //将TypeAlias 定义为Type类型的别名 type TypeAlias = Type |
类型别名与类型定义表面上看只有一个等号的差异,我们通过下面的这段代码来理解它们之间的区别。
1 2 3 4 5 6 7 8 9 10 11 12 | package main import "fmt" type Kubeint = int func main() { var kubeint Kubeint = 1 var orint int = 2 fmt.Printf( "%T,%d\n" , kubeint, kubeint) fmt.Printf( "%T,%d" , orint, orint) } |
输出:
1 2 | int,1 int,2 |
Kubeint类型只会在代码中存在,编译完成时并不会有Kubeint类型。
参考:https://blog.csdn.net/qq_42956653/article/details/121022120
分类:
Golang
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2019-01-24 eclipse web module版本问题:Cannot change version of project facet Dynamic Web Module to 2.5.
2018-01-24 (转)Redis集群搭建与简单使用(最少需要 6个节点)
2018-01-24 Java通过sftp上传文件
2018-01-24 (转)SpringBoot之退出服务(exit)时调用自定义的销毁方法