首页 > 其他分享 >11类型别名和自定义类型

11类型别名和自定义类型

时间:2023-11-03 09:47:30浏览次数:27  
标签:11 自定义 int 别名 MyInt 类型 type

Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。

类型别名和自定义类型

自定义类型

在Go语言中有一些基本的数据类型,如string整型浮点型布尔等数据类型, Go语言中可以使用type关键字来定义自定义类型。

自定义类型是定义了一个全新的类型。我们可以基于内置的基本类型定义,也可以通过struct定义。例如:

//将MyInt定义为int类型
type MyInt int

通过type关键字的定义,MyInt就是一种新的类型,它具有int的特性。

类型别名

类型别名是Go1.9版本添加的新功能。

类型别名规定:TypeAlias只是Type的别名,本质上TypeAlias与Type是同一个类型。就像一个孩子小时候有小名、乳名,上学后用学名,英语老师又会给他起英文名,但这些名字都指的是他本人。

type TypeAlias = Type

我们之前见过的runebyte就是类型别名,他们的定义如下:

type byte = uint8
type rune = int32

类型定义和类型别名的区别

类型别名与类型定义表面上看只有一个等号的差异,我们通过下面的这段代码来理解它们之间的区别。

//类型定义
type NewInt int

//类型别名
type MyInt = int

func main() {
	var a NewInt
	var b MyInt
	
	fmt.Printf("type of a:%T\n", a) //type of a:main.NewInt
	fmt.Printf("type of b:%T\n", b) //type of b:int
}

结果显示a的类型是main.NewInt,表示main包下定义的NewInt类型。b的类型是intMyInt类型只会在代码中存在,编译完成时并不会有MyInt类型。

标签:11,自定义,int,别名,MyInt,类型,type
From: https://www.cnblogs.com/nf01/p/17806923.html

相关文章

  • 博客园自定义主题教程
    https://www.cnblogs.com/cainiao-chuanqi/p/11388719.htmlhttps://blog.csdn.net/cxyliangzai/article/details/125094052?spm=1001.2101.3001.6650.8......
  • 最小生成树、二分图(11/2)
    到集合得最短距离是指点到集合中的所有点最短距离,集合就是遍历或正选中的数prim#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;intn,m;constintN=510;constintINF=0x3f3f3f3f;intg[N][N];intdist[N];boolst[N];intprim(){......
  • 每日总结11.02
    今天上课听老师和同学讲了业务流程图,并自己绘制了,然后的时间做了人机交互的实验和一些软考题。 ......
  • 工作感受月记(202311月)
    2023年11月02日昨日休假被套,心里起伏活动大。很是很是反省的一天。今日工作事项1/浏览邮箱里的新内容。2/接到一个案例,问redis的指标数据和在vnet和privateendpoint间的性能。以及通过managedidentity进行访问的功能。这个可以文档介绍。3/处理手中其他杂事。我自己都感......
  • 11.2 闲花
    今天不是角色日但是我:昨天晚上用学长讲课的配套题出了一场模拟赛,比较好笑的是教练根本没对这些题审核,结果选了四道题:全英文题面(gym题洛谷没翻译)计数题一个样例答案为\(2\)一个交互题只有一个样例,没有交互库然后就开网用翻译打,然后那道交互换成了一道阅读量极大的傻逼......
  • 学习笔记8——20211303ltc
    学习笔记8一、作业要求自学教材第5章,提交学习笔记(10分),评分标准如下1.知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”核......
  • 11.2 模拟赛小记
    赛时记录:5min:瞄了一眼题,感觉今天的部分分还是很多。写了一点目标分数和做题计划,就开始看T1。很明显的dij,但想怎么转点权。15min:点权转边权多源最短路,考虑建反边+超级源点就能完美解决。开写。代码实现用了5min但答案不对。哦,输出魅力值最高的城市。写成魅力值最高了。......
  • openGauss学习笔记-112 openGauss 数据库管理-管理用户及权限-行级访问控制
    openGauss学习笔记-112openGauss数据库管理-管理用户及权限-行级访问控制行级访问控制特性将数据库访问控制精确到数据表行级别,使数据库达到行级访问控制的能力。不同用户执行相同的SQL查询操作,读取到的结果是不同的。用户可以在数据表创建行访问控制(RowLevelSecurity)策略,该......
  • 11.3
    本次实现前端代码add.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>新增生产计划</title><style>body{font-family:Arial,sans-serif;}......
  • 11月2日GIL机制、计算密集型和io密集型
    目录CPythonGIL机制Jython、IronPython和PyPy(了解)为什么要有GIL机制例子计算密集型io(输入/输出)密集型CPythonCPython是Python的一种实现,它是官方解释器之一,而Python是编程语言本身的名称。然后CPython里面就有一个机制GIL(全局解释器锁),它是CPython中的一个重要特性,它对多线程......