go函数与方法的区别

BIT_ · 2020-12-11 18:14:55 · 1541 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2020-12-11 18:14:55 的主题,其中的信息可能已经有所发展或是发生改变。

求助大神?百度过了,教程也看了,还是不明白函数与方法的区别在哪里,在我看来方法是多余的,因为你方法可以做的我函数也可以做,为什么要方法呢?下面我要打印结构体name字段,函数和方法都行,所以我为什么要用方法?求大神解惑,方法应该有更深层次的原因才存在的。

// Pen 结构体
type Pen struct{ name string }

// 方法
func (p Pen) pens() Pen {
    p.name = "nihao"
    return p
}

// 函数
func pening() Pen {
    var pp Pen
    pp.name = "wohao"
    return pp
}

func main() {
    p2 := pening()    // 函数直接调用就行
    fmt.Println(p2.name) 
    p1 := p2.pens()    // 方法还要在调用别的函数
    fmt.Println(p1.name)
}

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1541 次点击  
加入收藏 微博
7 回复  |  直到 2021-01-03 13:21:18
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传