go语言有没有必要为对象增加get、set方法

80163916 · 2019-02-13 13:46:50 · 3315 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2019-02-13 13:46:50 的主题,其中的信息可能已经有所发展或是发生改变。

新手上路,本人由C/C++转向Java开发,现在开始转向Go开发,由于java开发习惯,通常为对象编写get、set方法。当我学完Go的基本语法后开始研读一些开源产品时发现,基本很少见有人为struct对象编写get、set方法。在这里想请教大家,Go开发中是否有必要增加get、set方法,如果有,什么情况下需要。此外还有个关于包路径的问题

---a
-----b
-------bb.go
-----c
-------cc.go
---aa.go

a路径中有一个aa.go文件,同时a路径下有b、c两个子路径,他们中分别含有bb.go和cc.go文件 像这样的包路径是否允许?如果允许,那么aa.go中如何使用b包中和c包中的内容? 非常感谢回答的朋友,


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

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

3315 次点击  
加入收藏 微博
5 回复  |  直到 2019-02-15 11:24:51
woshidashu
woshidashu · #1 · 6年之前
  1. 个人觉得随意,更推荐使用go的大小写来控制
  2. 可以这这样搞。通过完整路径或者相对路径访问,例如 /a/b/bb或者 ./b/bb - 如果bb.go的package是bb的话。
sdghchj
sdghchj · #2 · 6年之前

成员属性最好要像C#那样靠编译器来支持或者优化,否则自己去定义那么多get set方法等全是垃圾代码,开发和执行效率都低,golang的函数调用就意味着参数和返回值的一次值拷贝。

80163916
80163916 · #3 · 6年之前
woshidashuwoshidashu #1 回复

1. 个人觉得随意,更推荐使用go的大小写来控制 2. 可以这这样搞。通过完整路径或者相对路径访问,例如 /a/b/bb或者 ./b/bb - 如果bb.go的package是bb的话。

谢谢!

80163916
80163916 · #4 · 6年之前
sdghchjsdghchj #2 回复

成员属性最好要像C#那样靠编译器来支持或者优化,否则自己去定义那么多get set方法等全是垃圾代码,开发和执行效率都低,golang的函数调用就意味着参数和返回值的一次值拷贝。

谢谢!请问如果是指针传递是否有值拷贝的问题。go有像spring一样的框架吗?

sdghchj
sdghchj · #5 · 6年之前
8016391680163916 #4 回复

#2楼 @sdghchj 谢谢!请问如果是指针传递是否有值拷贝的问题。go有像spring一样的框架吗?

指针本身也是变量,参数传递时是拷贝的指针本身,理解为其它语言里所说的浅拷贝吧

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传