一个 go 语言的“坑”

2018-01-27 16:00:34 +08:00
 Cbdy

今天下午抽空想学学 go 语言,照着菜鸟教程写个 hello world 编译报错,研究了一下是因为模块导出的方法名必须大写字母开头

用过 go 语言的肯定不会犯这个错,但是我在想,如果 go 语言这样设计,不就只能用英语编程了?

我就特别喜欢给方法名函数名类型名属性名取中文😳

5025 次点击
所在节点    Go 编程语言
45 条回复
hlwjia
2018-01-27 18:48:08 +08:00
@hand515 别说了,就现在情况也切输入法切死了 真心累

怀念不用输中文的项目
az422
2018-01-27 19:07:29 +08:00
下一个坑:json 结构体的字段名需要大写才能被解析 /doge
darluc
2018-01-27 19:51:08 +08:00
看来是时候重新发明一下键盘了
fengh0409
2018-01-27 19:58:48 +08:00
你转行吧
1762628386
2018-01-27 22:07:06 +08:00
转行吧
Mitt
2018-01-27 23:02:39 +08:00
怎么就转行了。。 虽然用中文比较受歧视 但不代表存在没有意义, 连 C++都可以中文为什么 Go 就要例外,而且官方态度也是接受这个提议
blless
2018-01-27 23:43:21 +08:00
我当时还特意测试了一下 反正中文变量没啥问题。不能中文都是以前语言对 unicode 不完整留下的坑
whx20202
2018-01-27 23:55:14 +08:00
我怎么记得 java 也可以中文函数名呢
muziki
2018-01-28 00:00:05 +08:00
建议上面那些让人转行的卫道士去 repo 相关 issue 展示一下强国人士的“强势”嘴脸
loading
2018-01-28 07:55:13 +08:00
建议楼主基于 go 语言创新一些有自主知识产权的 狗语言 出来。
如果然后对应的是,第一个字母是动物。
chai2010
2018-01-28 08:15:12 +08:00
一直都可以用中文。只是目前的 Go 规范是以大写 unicode 字母开头的是导出的名字,而中文没有大小写区别。最大的影响是对 json 或数据库字段不好直接用中文。虽然特殊场景略有不变,但也不是什么严重的问题。拿 cplusplus 来论证就没有必要了,因为两者都看不上对方。好在官方也有改动的意愿,期待 2020 年的 Go2 吧
boboliu
2018-01-28 09:32:42 +08:00
回应一下 append:

> 如果你的项目使用中文注释,那么就可以使用中文变量,更容易看懂 & 变量的本来就是给人看的,当然是越容易看懂越好
这逻辑我没法回应。。。好像挺对的

> 而且写中文注释不用切输入法吗?
要知道变量的使用频率是很高的,而且短(通常而言,Java 闭嘴),因此带来的情况就会变得很尴尬,比如 for 键,值 := range 文件们 输入起来绝对够酸爽。而注释一般是较大段地进行,不需要考虑符号问题。当然如果你把输入法设置成英文符号就没有问题了,但那样又可能被社交圈中的“文化自信”群体怼。

> 而且有一些比较本土化的项目,很多名词甚至无法使用英文
这就是很多人用拼音的理由?事实上我还真没见过太多不能用英文的,如果因为几个词而整个代码中英文变量名横行那可就难受了,如果全中文那就更 tm 难受了。
mengzhuo
2018-01-28 09:51:43 +08:00
反正谁敢在我项目组里,用中文变量直接劝退
lolizeppelin
2018-01-28 09:58:33 +08:00
用中文补全很麻烦吧?
Cbdy
2018-01-28 09:59:09 +08:00
@boboliu 我提到注释用中文,变量即可用中文主要是说明中文变量在一些非国际化项目中是可用的

大多数项目英文 okay,然而确实有的项目英文表达能力是力有未逮的,比如《西游记》背景的游戏,场景人物当然可以翻成英文(参考《 Journey to the west 》),但是维护性就堪忧了
Cbdy
2018-01-28 10:03:27 +08:00
@lolizeppelin jb 家的 ide 中英文补全是一视同仁的,(将来)甚至可以开发出根据拼音补全中文
lrz0lrz
2018-01-28 10:32:46 +08:00
很好奇 Go 官方都表示支持了,为什么楼上一堆人却冷嘲热讽?
有没有和用不用是两码事,你不需要可以不用,但别人可能需要。
XIVN1987
2018-01-28 10:49:04 +08:00
所以我觉得,还是下划线起始的标识符 private 这种设定比较好,,Go 现在这个大小写区分感觉不友好
wzxlovesy
2018-01-28 14:45:31 +08:00
GO 不需要你,你不需要 GO
rainbowtrash2333
2018-01-28 14:54:24 +08:00
@yyfearth 作为南方人,我宁愿用英语也不用拼音,‘ n ’ ‘ l ’ 分不清啊

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

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

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

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

© 2021 V2EX