Go允许人们将定义的方法与其工作的结构/数据类型分开定义。这是否意味着在放置方法定义或其他方面具有灵活性?
我听说过Go的struct / methods系统已与猴子补丁程序进行了比较,但是如果我理解正确,那么您真的无法将方法添加到任何现有类型(struct)中,因为方法必须与该类型位于同一包中。就是 无论如何,您只能猴子修补受您控制的类型。还是我错过了什么?
在哪种情况下,您将在单独的源文件中(或在同一源文件的不同部分中)定义类型及其方法?
这是基于类型的语言的优势:您可以根据需要组织文件:
通常,Go不会添加没有用的约束。那么答案也可能是“为什么不”?
您真的不能将方法添加到任何现有类型(结构)中,因为方法必须与该类型位于同一包中
如果可以,在两个不同包中的相同结构上使用相同函数名称的情况下,您可能无法确定要调用哪个函数。否则会使某些软件包不兼容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句