知识卡片
方法表达式将方法变为普通函数
内容
Go允许用Type.Method这种写法把一个方法直接当成一个普通函数值取出来,这个函数值的第一个参数就是原本的接收者——比如asString := Part.String得到的函数签名是func(Part) string,调用时要显式把接收者作为第一个参数传进去`asStri发散:这揭示了Go方法的本质——方法从来不是和类型绑死的特殊语法糖,它骨子里就是一个第一参数为接收者的普通函数。
参考来源
- 位置:《Go语言程序设计》第6章《面向对象编程》(源文件:_epub-src/OEBPS/text00040.html)
- 结论依据:原文在该章节围绕“Go允许用`Type.Method`这种写法把一个方法直接当成一个普通函数值取出来,这个函数值的第一个参数就是…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。
- 原始内容:(在其他语言中常常使用术语“未绑定方法”(unbound method)来表示类似的概念。) asStringV := Part.String // 有效签名:func(Part) string sv := asStringV(part) hasPrefix := Part.HasPrefix // 有效签名:func(Part, str…