恨死 go 的导出变量命名规则了

2023-08-21 21:25:49 +08:00
 zhwguest

是否包导出居然是靠首字母大小写来区分,写着写着,一个变量想修改为包外可见,居然要修改几十上百个文件。

这是一种什么样的思想....

7878 次点击
所在节点    Go 编程语言
111 条回复
loveuer
2023-08-22 08:42:17 +08:00
不对吧,如果你一开始就是小写,那么必须同一个包才能使用,怎么可能到处都是引用,所以何来到处都要改的问题?那如果你一开始就是大写,现在要改 private ,同等情况就算 python ,java 也要改很多地方(或者借助 idea ,lsp )的 refactory ,所以何来吐槽呢?不要为了吐槽而吐槽啊?
GTim
2023-08-22 08:50:16 +08:00
@loveuer 同意,他这种方式是不想写方法,原则上来说,如果要对外能访问,又不想改可见级别,Java 难道不是另开一个方法么? Java 领域也没人敢把 private 的方法直接改成 public 的方法吧
cosiner
2023-08-22 08:59:11 +08:00
要修改多个文件是因为你改了函数名, 不是因为改了可见性, 虽然这是因为 Go 的可见性和函数名大小写绑定, 按照其他人说的, 如果只是想增加一个导出 API, 又不想修改太多文件, 可以加一个包装函数

语言风格有好处有坏处, 有人能接受, 有人接受不了, 不能接受就换, 换到满意为止
pluto1
2023-08-22 09:01:24 +08:00
go 本身就是为了工程而生的,各种杂七杂八的限制很多就是为了让大家按一个模子写,方便协作
Desdemor
2023-08-22 09:01:33 +08:00
换语言吧,搞多了你自己心情都要崩溃了
bruce0
2023-08-22 09:01:58 +08:00
我反而挺喜欢这个根据大小写判断 public 和 private 的, 要不然每个变量前面加个单词 好麻烦, C++ 虽然可以 作用后面全部, 但是有时候还要往前翻才知道到底是 public 和 private
cyrivlclth
2023-08-22 09:03:35 +08:00
说实话 一般 public 改 private 不管啥语言影响都挺大。 一个 private 改 public 的,能改动几十上百个文件?我的认知里一个 package 咋做到上百个文件的🫠🫠🫠
Narcissu5
2023-08-22 09:07:00 +08:00
ide 改简单倒是简单,都是对 code reviewer 实在是太残酷了
Smilencer
2023-08-22 09:07:35 +08:00
我这边建议你换语言呢亲
ohwind
2023-08-22 09:11:05 +08:00
@kiwi95 #38 所以 OP 放弃了 Go. 人们有权表达自己对某个编程语言的厌恶.
zhzy
2023-08-22 09:24:49 +08:00
@jorneyr 没用 (T) 已经很不错了
kiwi95
2023-08-22 09:25:25 +08:00
@ohwind 厌恶可以,恨死就极端了吧。你有见过完美的语言吗?我很想知道 op 或者你换到什么语言了
jorneyr
2023-08-22 09:30:36 +08:00
@zhzy 没用 (T) 已经很不错了

要笑哭了。
ntop
2023-08-22 09:32:50 +08:00
@kiwi95 恨死了,估计是性格有问题了,,,只是一门语言而已,不喜欢就不用,找工作的时候找自己喜欢的语言的工作就行了呗。
MrSheng
2023-08-22 09:40:12 +08:00
@ntop 也可能只是暴露了自己半吊子的水平而已
surbomfla
2023-08-22 09:41:23 +08:00
七天速成 Golang 都知道如何进行函数方法包外可见,OP 一点都不看,直接上来开写 🤡
learningman
2023-08-22 09:45:45 +08:00
本来不可见的,你是怎么写出上百个文件的
本来可见的,你改完了,本来也要全改一遍
githmb
2023-08-22 09:51:20 +08:00
我就觉得函数名大写太丑了所以拒绝学习这门语言
Mexion
2023-08-22 09:55:21 +08:00
大道至简是这样的😁
ziyeziye
2023-08-22 09:58:18 +08:00
吐槽逻辑不成立。
同#41 和#57 ,private 的情况,怎么实现几百个地方都引入的?本来 public 改成 private ,那其他语言外部使用的一样都需要大批量修改,和 go 又有什么区别呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/967198

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX