H5W3
当前位置:H5W3 > go > 正文

【go】关于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(){
............
}

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

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

回答

本文地址:H5W3 » 【go】关于golang方法与package和struct的关系

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址