关于golang方法与package和struct的关系

身受java相关语言的影响,方法只能被class定义。
而在golang语言中,比如方法A()可以被包package service定义,调用的时候:service.A()
也可以被struct User定义,调用的时候:var user User; user.A()

除了调用过程不一样,但结果其实都是一样的。所以想请教各位,你们是如何组织golang方法的?或者说在某些情况下会导致结果不一样?那他们又有什么不同?

==== 补充一下问题====

这导致了一个比较纠结的问题,比如数据库中有一个user表,为了更好的去维护数据库的操作,通常会建立一个数据持久层。
在这种情况下,到底该定义一个user struct?,如下

type User struct {

}

func (user User) insert(){
    ............
}

还是要定义一个user package?,如下

package user

func insert(){
    ............
}
阅读 4.5k
2 个回答

个人喜欢用struct来对应数据表和数据
有struct自带方法来做增删改查
关键是同一个目录下不能包含多个package,也就是你定义一个package就要单独一个文件夹,这样子太乱了。。目录结构太深。

如果能使用包名加方法名直接调用的是一个函数,而struct的方法还是要先实例化struct然后再调方法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题