通过变量访问函数

通过变量访问函数,第1张

通过变量访问函数

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”函数则无法做到这一点。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5126313.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存