栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

此类型声明的含义是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

此类型声明的含义是什么?

这是一个类型声明,更具体地说是一个 类型定义
。它创建一个新类型,

[]byte
其基础类型为:

类型定义使用与给定类型相同的基础类型和操作创建一个新的独特类型,并将标识符绑定到该类型。

创建新类型是因为它们可以多次简化使用,它们的标识符(其名称)可能在其他情况下具有表达性,并且最重要的是,您可以在其上定义(附加)方法(不能将方法附加到内置类型,也不能匿名类型或其他包中定义的类型)。

最后一部分(附加方法)很重要,因为尽管您可以像附加方法那样轻松地创建和使用接受“原始”类型作为参数的函数,但是只有带有方法的类型才能实现列出(“
prescribe”)的接口这些方法,并且如前所述,除非创建从它们派生的新类型,否则无法将方法附加到某些类型。

例如,该类型

[]int
永远不会实现
sort.Interface
所需的(可通过
sort
包进行排序),因此将
sort.IntSlice
创建一个新类型(即
typeIntSlice[]int
),该类型附加了所需的方法,因此您可以将type的值传递
sort.IntSlice
sort.Sort()
函数,但是不是type的值
[]int
。由于
sort.IntSlice
具有
[]int
作为其基础类型,因此,如果您具有的值
[]int
,则可以简单地将其转换为
sort.IntSlice
想要对其进行排序的形式,例如在此示例中(在Go
Playground
上尝试):

is := []int{1,3,2}sort.Sort(sort.IntSlice(is))fmt.Println(is) // Prints: [1 2 3]

创建新类型时,不涉及“继承”。新类型将具有0个方法。如果您想要“类似继承”的功能,则应签出嵌入(与struct类型有关),在这种情况下,嵌入器类型也将“具有”嵌入类型的方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/417777.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号