V2EX 20小时前
[程序员] Go 菜鸟请教:方法集合, T 类型和*T 类型的方法集合
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文探讨了Go语言中*T类型与T类型方法集的区别及其影响,分析了接口实现与参数传递的关系,并试图揭示底层设计原因。
  1. T 类型由于语法糖可以调用 receiver 为 T 或者T 的所有方法
    2.
    T 类型由于语法糖也可以调用 receiver 为 T 或者T 的所有方法。
    3. T 类型的方法集合只包括 receiver 为 T 的方法。
    4.
    T 类型的方法集合则包括 receiver 为T 和 T 的所有方法。

    方法集合的概念区别主要影响接口实现。如果
    T 实现了接口,不能算是 T 实现了接口。

    那么 Go 为啥要做这样的设计。

    参数值拷贝传递和指针修改这个应该只是简单的表面上的区别。

    隐隐感觉底层是不是有什么更深入的“原因”来支持这个“方法集规则”的设计。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Go语言 方法集 接口实现 参数传递
相关文章