世界快讯:Go-自定义数据类型(函数类型)详解
前提:为了简化数据类型,go支持自定义数据类型基本语法:type自定义数据
前提:为了简化数据类型,go支持自定义数据类型
基本语法:
type 自定义数据类型名 数据类型 //相当于取一个别名
(资料图片)
eg: type myint int //这时myint就等价于int来使用了
eg:type mySum func(int, int) int /这时mySum就等价一个函数类型func(int, int) int
//给int取一个别名,在go中,myInt和int虽然都是int类型,但go认为myInt和int是两个类型type myInt intvar num myIntvar num2 intnum = 22num2 = int(num) //注意:这里依然需要显示转换,go认为myInt和int是两个类型fmt.Printf("num的值为%v, num2的值为%v\n", num, num2)
问题描述:由上可知,既然go认为myInt和int是两个类型,那么下面定义的myfunc与func(int,int)int也是两个类型。
那么在使用myfunc作为形参类型时,为什么在传参数a的时候不提示参数类型不匹配??
1 type myfunc func(int,int)int //自定义函数数据类型 2 3 func sum(n int,m int) int{ 4 return n+m 5 } 6 7 func sum2(funvar myfunc, a int, b int )int{ //作为形参funvar函数类型为myfunc 9 return funvar(a,b)10 }11 func main(){ 12 a :=sum 14 fmt.Printf("a+b=%d\n",sum2(a,1,2)) //所传递的 a的数据类型为func(int,int)int15 }
结论:
在Go语言中,函数类型的参数是一种抽象的类型,它描述了函数的签名(参数类型和返回类型),而不是具体的函数实现。因此,在声明函数类型时并不会指定参数的具体类型。
当定义一个函数类型 myfunc
为 func(int, int) int
时,它表示该函数类型接受两个 int
类型的参数,并返回一个 int
类型的结果。这个类型可以用来声明变量或作为函数的参数或返回值。
然而,当你使用函数类型 myfunc
的变量或将其作为参数传递时,编译器并不会对参数的具体类型进行检查。这是因为函数类型是一种抽象的概念,可以被用于表示多个具体类型的函数。
例如,你可以将满足相同签名的具体函数赋值给 myfunc
类型的变量,因为它们的参数和返回类型匹配。编译器只会检查函数类型的签名是否匹配,而不会进一步检查参数的具体类型。
因此,在传递参数时,Go编译器不会提示参数类型不同的错误,因为函数类型的参数是抽象的,可以接受多种具体类型的函数。如果你需要确保传递的参数类型与函数类型的参数匹配,你需要在代码中进行显式的类型检查和转换。
标签:
前提:为了简化数据类型,go支持自定义数据类型基本语法:type自定义数据
5月份,比亚迪的全球插电式汽车销量不但没有放缓,反而加速增长,创下
海报新闻记者李义方孙靓丛萍满倩倩邢德蕊济宁报道世界互联网大会数字文
曹操手下五大猛将,典韦许褚上榜,看看剩下三人都有谁,曹操身边猛将如
吴越的演技和资历没啥问题[并不简单]这次演员拿奖的争议缘由应该主要还
央视新闻客户端两千多年前西汉人用的高定“香薰机”长啥样?三个看点带
1、指导意见:你提的问题属于生活问题,不在医脉范畴。2、请你谅解!追
1、一、宸:chén;从 "宀 ",表示与房屋有关。2、本义为:屋檐。3、屋
导读1、点击菜单中“文件”,点击“页面设置”;2、在“页面设置”中点
即使经过150万次循环打开和关闭运动,自然界中河蚌“铰链”依然能
中新社北京6月23日电(记者陈溯)中国北方多地正经历“热出天际”的“
端午假期期间,我国北方地区出现大范围、持续性高温天气。6月22日8时至
我们都知道广告对于一个企业的宣传是非常的重要,很多的企业都会花费巨
关于世界上最吓人的图片吓死诡异,世界上最吓人的图片这个很多人还不知
拼版照片,图片为荣凤明和他所制作的工艺笤帚(6月21日摄)。在吉林省
国际低碳城蝴蝶湖内荷花盛开、每周六晚上的“花开·蝶恋”音乐盛会、“
近日,在朱泾镇“七彩驿站”户外职工爱心接力站里,身着黄、蓝、绿等制
“棹影斡波飞万剑,鼓声劈浪鸣千雷”龙舟竞渡,百舸争流端午赛龙舟,是
日渐墨迹!理论上NBA选秀首轮结束时间为10:30近5年全部超时,直播,nba选
李栋旭九尾狐传1938,李栋旭和秀智公开恋情他们在哪里认识的这个很多人
杭州交通近期,由于国内成品油价格调整,持续30天以上跌破油运价格联动
近日,微软宣布与法国外包集团Teleperformance签订价值约13 28亿元人民
依拉草原位于香格里拉市西北6公里处,总面积13平方公里,是迪庆香格里
端午假期首日,全国各地旅游景区迎来游客高峰。大家的出行热情有多
6月22日,“工行杯”2023赣州市章江南桥龙舟赛在章江浮桥至娱乐城河道
hello大家好,我是城乡经济网小晟来为大家解答以上问题,夏至未至昨日
新年给客户的优秀答谢词(精选3篇)新年给客户的优秀答谢词篇1各位领导
1、GMT(GreenwichMeanTime)——格林尼治标准时间,格林尼治标准时间
世界大型企业联合会高级经理JustynaZabinska-LaMonica表示,5月份美国
1、激光脱毛效果最好,其他常用脱毛还有化学试剂脱毛、物理脱毛。2、1