The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
Cbdy

一个 go 语言的“坑”

  •  
  •   Cbdy · Jan 27, 2018 via Android · 6482 views
    This topic created in 3213 days ago, the information mentioned may be changed or developed.

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

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

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

    Supplement 1  ·  Jan 27, 2018
    如#18 给出的链接,说明 golang 官方已经意识到这个问题了

    很多人觉得中文变量比较奇怪,或者说 low,但是我的观点是:如果你的项目使用中文注释,那么就可以使用中文变量,更容易看懂,而且写中文注释不用切输入法吗?

    变量的本来就是给人看的,当然是越容易看懂越好,而且有一些比较本土化的项目,很多名词甚至无法使用英文
    45 replies  •  2018-01-29 12:22:04 +08:00
    Finest
    Finest
    Jan 27, 2018
    1
    规范里已经写明了
    tomine
    tomine
    Jan 27, 2018 via Android❤️1
    2
    易语言欢迎你
    legendlzy
    legendlzy
    Jan 27, 2018
    3
    你这个命名。。。真的不会被喷吗。。。
    6diyipi
    6diyipi
    Jan 27, 2018❤️6
    4
    这行不适合你。
    gbin
    gbin
    Jan 27, 2018 via Android
    5
    中文命名,很少见。
    bramblex
    bramblex
    Jan 27, 2018❤️2
    6
    go 怎么可能有坑,楼主觉得有坑肯定是楼主信仰不够坚定,是要下火狱的。

    小心 go 厨把楼主抓起来处以石刑。(手动斜眼笑
    zhsj
    zhsj
    Jan 27, 2018
    7
    前排花生瓜子凉茶
    lepig
    lepig
    Jan 27, 2018
    8
    楼主 去搞个 cgo 语言出来
    xuyl
    xuyl
    Jan 27, 2018
    9
    你去用易语言吧。
    sanjusss
    sanjusss
    Jan 27, 2018❤️1
    10
    上面的都没用过 C#吗? C#的属性名可以是中文的。
    yyfearth
    yyfearth
    Jan 27, 2018 via iPhone
    11
    谁说只能是英文 只要是大写字母就可以吧

    不能中文 但是可以用拼音呀 嘻嘻
    boboliu
    boboliu
    Jan 27, 2018 via Android❤️1
    12
    @sanjusss 但是不管是 c#还是 go (其实 c 艹也支持 u8 命名的),甚至是 py/js,你敢写中文的话,自己玩还好,公司项目一般要被同事骂,开源项目就是被社区吐槽。易语言习语言另说
    Finest
    Finest
    Jan 27, 2018
    13
    中文编程,切换输入法不累吗
    didi2050
    didi2050
    Jan 27, 2018
    14
    你适合用图形化编程
    southsala
    southsala
    Jan 27, 2018
    15
    楼主之前用易语言玩外挂的吧
    jadeity
    jadeity
    Jan 27, 2018
    16
    楼主重新定义了“坑”?
    we000
    we000
    Jan 27, 2018
    17
    ???
    Kisesy
    Kisesy
    Jan 27, 2018❤️2
    18
    https://github.com/golang/go/issues/16033 Go2 应该会解决这个问题
    hst001
    hst001
    Jan 27, 2018 via Android
    19
    认真想一下,这确实是一个问题。
    Paddington
    Paddington
    Jan 27, 2018
    20
    我来看看道友怎么说
    hlwjia
    hlwjia
    Jan 27, 2018 via iPhone
    21
    @hand515 别说了,就现在情况也切输入法切死了 真心累

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

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

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

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

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


    呵呵 中文补全要打几次键盘
    aksoft
    aksoft
    Jan 29, 2018
    43
    我挺你 中文变量名确实有意思。。。
    atcdef
    atcdef
    Jan 29, 2018❤️2
    44
    从内心来说,我也想用中文变量名,但问题在于 IDE 支持不好,所以输入麻烦,易语言用中文,是因为 IDE 支持得好,可以输入中文首拼实现中文变量名自动上屏。我专门下载了易语言试了,输入中文确实方便。

    所以,现在我还是用的字母做变量名,期待有人搞插件实现中文变量名首拼上屏的功能。
    not4jerk
    not4jerk
    Jan 29, 2018
    45
    我觉得 golang 很坑,不过没有办法. 所以我用算盘写代码,楼主遇到的坑我完美的跳过了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1891 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 91ms · UTC 11:49 · PVG 19:49 · LAX 03:49 · JFK 06:49
    ♥ Do have faith in what you're doing.