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

通过变量访问函数

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

通过变量访问函数

1-您不能将内置方法“附加”到类型或值上,例如

m := map[int]string{1: "one"}m.delete(1)

是一个编译时错误,可以轻松验证。

2-
Go没有泛型。但是为了缓解“痛苦”,它提供了一些内置函数,可以接受不同类型的值。它们是内置的,因为(如上所述)由于缺少泛型,它们需要编译器的帮助才能接受不同类型的值。有些人还接受类型而不是表达式作为第一个参数(例如

make([]int,1)
),这也是您不能创建的。内置函数没有标准的Go类型,它们只能出现在调用表达式中。

您不能创建接受不同类型值的函数。话虽如此,当您创建自己的类型并为其创建“函数”时,建议将其声明为方法而不是辅助函数。就像“功能”在您的具体类型上运行一样,无论如何您都不能将其用于其他类型。

因此,将其声明为方法是有意义的,然后您可以更“优雅地”调用它,例如

value.Method()

作为一种方法,如果您需要实现一个接口,则也“算在内”
该类型的方法集,例如,在您需要实现一个接口的情况下,能够对列表进行排序是

MyCoollinkedList
有意义的,例如
sort.Interface
,这需要一个
Len()int
方法。

在辅助函数上选择方法的另一个好处是,可以通过反射来使用您的方法。您可以使用该

reflect
程序包列出和调用某种类型的方法,但使用“
just”函数则无法做到这一点。



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

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

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