• 请不要在回答技术问题时复制粘贴 AI 生成的内容
dhairoot
V2EX  ›  程序员

怎么克服学习 Go 时的恶心感觉,语法太奇怪了

  •  
  •   dhairoot · Oct 9, 2019 · 36824 views
    This topic created in 2582 days ago, the information mentioned may be changed or developed.

    用大家都熟悉的规则设计语法多好,为什么非要高一些乱七八糟的语法.

    278 replies  •  2024-08-27 17:21:54 +08:00
    1  2  3  
    ❮ ❯
    zjyl1994
    zjyl1994
    Oct 9, 2019❤️5
    101
    慢慢用就习惯啦,Go 还算好用。我倒是觉得 java 之类的很难用,我宁可去写 c++也不想碰什么鬼 java
    GPIO
    GPIO
    Oct 9, 2019
    102
    @ChristopherWu
    变量那个我是指简短声明,var 因式分解声明这种,不是驼峰。
    我一开始就踩了个坑,简短声明一个新局部变量时不能同时赋值全局变量。
    wangxiaoaer
    wangxiaoaer
    Oct 9, 2019 via Android❤️2
    103
    @imzxk go 的写法让我感觉像个小孩子路都走不稳,php 的$让我痛不欲生。
    shuizhengqi
    shuizhengqi
    Oct 9, 2019
    104
    因为支持 go 的人还支持 hk 分裂,所以你会觉得恶心
    janxin
    janxin
    Oct 9, 2019
    105
    @ChristopherWu 暗示只有三个黑点
    tt67wq
    tt67wq
    Oct 9, 2019
    106
    @ChristopherWu elixir 元编程美如画,写了之后都不想碰公司的 go 代码
    forrestshuang
    forrestshuang
    Oct 9, 2019❤️2
    107
    if err != nil 太他吗的恶心了。 如果不是 云原生都需要用这个,我才不学 golang
    huoru
    huoru
    Oct 9, 2019❤️2
    108
    @tt67wq #106 +1,望着一大堆 switch,case,if,err,我天天日了狗
    huoru
    huoru
    Oct 9, 2019❤️1
    109
    @tt67wq #106 还有哦,写代码只要 5 分钟,想想怎么样重构花半小时,再发现没有泛型怎么做都做不好再 ri 一遍。。
    huoru
    huoru
    Oct 9, 2019
    110
    @shuizhengqi #104
    》因为支持 go 的人还支持 hk 分裂,所以你会觉得恶心

    愿中国 gopher 都摆脱冷气,只是向上走,不必听自暴自弃者流的话。

    能提 pr、issue 的提 pr、issue,能黑的有理有据黑。

    有一分热,发一分光,就令萤火一般,也可以在黑暗里发一点光,不必等候炬火。

    此后如竟没有炬火:我便是唯一的光。
    tt67wq
    tt67wq
    Oct 9, 2019
    111
    @ChristopherWu 我已经放弃重构了,准备用 elixir 另起炉灶
    charlie21
    charlie21
    Oct 9, 2019
    112
    本质上是一个人不具备屏蔽各个编程语言语法差异的能力 。没治了。怎么别人就能屏蔽各个编程语言语法差异、拿起来就用呢?
    Rasphino
    Rasphino
    Oct 9, 2019
    113
    你不懂大道至简(逃
    huoru
    huoru
    Oct 9, 2019
    114
    @charlie21 #112 你说,给你汇编语言,你能够屏蔽吗?给你 scheme,你能够屏蔽吗? 编程语言在本来就是有巨大差异
    huoru
    huoru
    Oct 9, 2019
    115
    @tt67wq #111 那起码你还可以选啊 - = -
    chuhemiao
    chuhemiao
    Oct 9, 2019
    116
    明晚 go 夜读有微服务直播,看了会不会出事,瑟瑟发抖
    charlie21
    charlie21
    Oct 9, 2019
    117
    精通两种或两种以上的乐器是一种什么体验?
    https://www.zhihu.com/question/294602444
    有人可能精通十几种乐器吗?
    https://www.zhihu.com/question/330310319
    会演奏多种乐器是一番什么样的体验?
    https://www.zhihu.com/question/27322494

    说白了,那就是 对自我的要求太低了的程序员占所有 Java 程序员 的比重是极大的。建议考虑自己的圈子是不是有问题
    geekfoxmedia
    geekfoxmedia
    Oct 9, 2019
    118
    @shuizhengqi
    go 红##卫兵兼任反 tg 小斗士才能说出如此神论
    None123
    None123
    Oct 9, 2019
    119
    go 的包管理是真恶心
    jowan
    jowan
    Oct 9, 2019❤️5
    120
    我发现在 v 站不管什么话题 都能扯到 敏感的政治问题 然后就开始歪楼 甚至演变成攻击 我真是服了
    dhairoot
    dhairoot
    OP
    Oct 9, 2019❤️1
    121
    @jowan 很是无语,我就去吃个饭回来就变成这样了
    anonymous256
    anonymous256
    Oct 9, 2019
    122
    @ChristopherWu #89 不知道你在哪看出我黑 golang 了?
    事实上, 我每天都在写 golang, 写 go 的时间远比写 C/C++多. 但它语法的不优雅的地方就是不优雅的地方.

    ps: 你这种人真的恶心, 我说自己的观点, 就给人戴上黑粉的帽子.
    eric
    eric
    Oct 9, 2019
    123
    我还是见到有人说 Java 优雅的,看来是在下孤陋寡闻了。
    anonymous256
    anonymous256
    Oct 9, 2019
    124
    @ChristopherWu #92 哦, "正好最近在学 Go" , 我知道了, 才入门就要指点江山了吗?
    anonymous256
    anonymous256
    Oct 9, 2019
    125
    @jowan #120, 那种弟弟, 拉黑就完事了.
    huoru
    huoru
    Oct 9, 2019
    126
    @anonymous256 为什么你觉得黑就是扣帽子呢。。你看我的言论,我是不是比你黑的更厉害呢。。

    请看: https://blog.golang.org/gos-declaration-syntax
    fengyj
    fengyj
    Oct 9, 2019
    127
    相比而言,感觉 go 的包管理更恶心人。
    tabris17
    tabris17
    Oct 9, 2019
    128
    准备一个呕吐袋
    huoru
    huoru
    Oct 9, 2019❤️1
    129
    @anonymous256 #122 在你看来,go 黑可能是贬义词,在我看来是褒义词,就是这样。
    huoru
    huoru
    Oct 9, 2019
    130
    @anonymous256 #124 还有哦。。。“正好最近在学 go”是我引用别人的评论。
    ClericPy
    ClericPy
    Oct 9, 2019
    131
    很多不习惯的地方只能靠肌肉记忆来改善了

    我还不喜欢写字呢, 不也是忍着来了

    话说这帖子到底怎么火起来的
    huoru
    huoru
    Oct 9, 2019
    132
    @ClericPy #131 自古以来,语言 /编辑器之争。。。。
    rb6221
    rb6221
    Oct 9, 2019 via iPhone
    133
    @icexin 我感觉这个问题可以在编译层自动解决的,没必要在编写层就给 error 吧……
    huoru
    huoru
    Oct 9, 2019
    134
    @janus77 #133 你 import 那么多没用的包也不好看啊。。。这个站不住脚
    kzzhr
    kzzhr
    Oct 9, 2019 via iPhone
    135
    不要生气,这个真属于 少见多怪。。
    LiJie
    LiJie
    Oct 9, 2019
    136
    我自己有些先入为主的感觉,大学学习的 c++,只能习惯 c++的语法习惯,其余都是强忍着。高中自己学习的 vb,感觉也不错,当时是 vb6 记得。
    cominghome
    cominghome
    Oct 9, 2019
    137
    没写过 GO,先学的 python 后来学 Lua,我觉得大概是你还没适应吧,我刚写 Lua 的时候也是各种语法不熟悉,学了快一星期了还得对着手册找语法...
    shuizhengqi
    shuizhengqi
    Oct 9, 2019
    138
    @geekfoxmedia 嗯,怎么了?不是倡导言论自由么?怎么我说个话,都能引起你高潮呢?
    n329291362
    n329291362
    Oct 9, 2019
    139
    emmm 首先克服自己的傲慢吧
    GG668v26Fd55CP5W
    GG668v26Fd55CP5W
    Oct 9, 2019 via iPhone❤️2
    140
    没想到这种主题都能往“水深火热”节点前进😂
    CuChulainn
    CuChulainn
    Oct 9, 2019
    141
    写会儿 kotlin
    barnetime
    barnetime
    Oct 9, 2019
    142
    写 java 也很恶心,然后去写 scala,更畸形……
    iffi
    iffi
    Oct 9, 2019 via iPhone
    143
    试试 Groovy
    Leigg
    Leigg
    Oct 9, 2019 via Android
    144
    静态语言切换就容易有这种感觉,你是被 java 先入为主了
    blessyou
    blessyou
    Oct 9, 2019 via Android
    145
    写会 js
    sudodo
    sudodo
    Oct 9, 2019
    146
    恶心过两周,就体会到它的爽了。除了异常处理,感觉好简洁,有点写 Lua 的快感
    realpg
    realpg
    Oct 9, 2019❤️1
    147
    只觉得异常处理机制不太优雅
    其他都很不错

    喷的大多只是沉迷于自己之前熟悉的世界不愿意出来
    cabing
    cabing
    Oct 9, 2019
    148
    多学会几种语言写完各种项目之后就会觉得 go 真香。

    特别是微服务的时代。
    arraysnow
    arraysnow
    Oct 9, 2019
    149
    @shuizhengqi 支持 js/java/php/c#/python···英语 /德语 /法语 /粤语 /闽南语的人还支持 hk 分裂,所以你会觉得恶心(逃
    tourist2018
    tourist2018
    Oct 9, 2019
    150
    golang 我觉得语法方面还行啊 没什么可吐槽的 习惯就行了

    golang 最恶心的是不支持泛型已经垃圾的一批的包管理工具( go1.11 引入 go mod 好了点) 之前真的痛不欲生
    felixcode
    felixcode
    PRO
    Oct 9, 2019 via Android
    151
    有这种感觉大概就是思维固化了,觉得语法就应该怎么着,其实谁也没规定语法该怎样,更不用说非得接近 C/Java/python 了,还是试着接受新事物吧
    w3cll
    w3cll
    Oct 9, 2019
    152
    go 的包管理真的很辣鸡 搞不懂一个包和项目目录居然是同级的。。。。很奇葩的目录结构
    HiShan
    HiShan
    Oct 9, 2019
    153
    @eric 请问 Java 不优雅体现在哪些方面呢?
    polebug
    polebug
    Oct 9, 2019
    154
    楼主怕不是没写过 c/c++
    java 相比较起来 恶心多了
    ming7435
    ming7435
    Oct 9, 2019
    155
    我以为就我一个人接受不了 go 的语法
    zooey2021
    zooey2021
    Oct 9, 2019 via iPhone
    156
    1. 变量声明的顺序, C/C++风格, 先类型,后变量名, go 是反的.
    2. go 的花括号强制从行末开始, 并且不能换行.

    就这 2 点, 我也觉得 go 的语法反人类的.

    +1 !
    不否认 go 的成功,多年 c 和 python 程序猿对写 go 代码始终提不起兴趣来,感觉 go 的语法用起来确实有点不舒服。
    chinvo
    chinvo
    Oct 9, 2019
    157
    来学 .Net 和 rust
    SPACELAN
    SPACELAN
    Oct 9, 2019
    158
    真香
    creedowl
    creedowl
    Oct 9, 2019 via Android❤️2
    159
    看了楼主的回复和互动都是在吐槽 go 而不是讨论,既然只是为了找认同,那这个帖子还有什么存在的必要吗?不喜欢就用脚投票,出来污染社区环境有什么意义吗
    hyrepo
    hyrepo
    Oct 9, 2019 via iPhone❤️1
    160
    这个帖子让我对“网络从来不是一个讨论事情的好地方”的说法有了更多理解
    walleL
    walleL
    Oct 10, 2019❤️2
    161
    https://blog.golang.org/gos-declaration-syntax

    go 官方有解释为什么变量声明时类型要写到后面。
    我当年学 C 时就觉得类型在前的设计很多时候表意不明,看了官方解释还挺认同的
    pkwenda
    pkwenda
    Oct 10, 2019
    162
    @chuhemiao 在哪看,走一波
    melkor
    melkor
    Oct 10, 2019 via Android
    163
    楼主学的第一个编程语言如果是 Pascal 恐怕就不会发出这样的疑问了。每个人有不同的学习历程,不是你不习惯就是恶心和奇怪。
    laike9m
    laike9m
    Oct 10, 2019 via Android
    164
    @wysnylc 只要你想,Python 也是可以写成 Java 风格的。。
    mscb
    mscb
    Oct 10, 2019 via Android
    165
    恰恰相反,我完全接受不了 Java,每次写 Java 久一点都感到恶心,哈哈哈。可能确实是一开始建立的思维不同。go 我觉得语法还算好,多写写应该能适应的
    v2orz
    v2orz
    Oct 10, 2019
    166
    我个人的痛点是无数的 if err
    以及 panic
    然后是调试的时候无效的 import
    undefined8
    undefined8
    Oct 10, 2019
    167
    跑起来后那种顺畅感相反
    missdeer
    missdeer
    Oct 10, 2019❤️1
    168
    遵从自己内心的喜好,连学个语言都不能选个自己喜欢的来,人活着还有什么意思
    比如我觉得 Python 空格缩进不能忍,所以我至今不会写 Python 代码,我觉得 Rust 的语法符号滥用,不直观,违反直觉,所以至今不会写 Rust 代码。。。
    bakabie
    bakabie
    Oct 10, 2019 via Android❤️1
    169
    怎么克服学习 Java 时的恶心感觉,语法太奇怪了,为什么要设计这么恶心的语法 doge
    dbskcnc
    dbskcnc
    Oct 10, 2019 via Android
    170
    无知的傲慢, 这世界不是为恭维某个人而存在的
    Sasasu
    Sasasu
    Oct 10, 2019 via Android
    171
    变量转 interface 时会隐式引入指针
    函数调用时变成指针会造成变量逃逸,分配到堆上
    栈上的变量只能被栈上的指针指向

    这不是说 go 的逃逸分析很烂,是在说 go 羸弱的类型系统没法支撑 void* 这样的零开销抽象

    go 完全无视了现代 pl 界的研究成果,一群写 c 的造了一个自己认为比 c 好的语言。
    接触过现代语言的自然会感到不舒服。
    BOYPT
    BOYPT
    Oct 10, 2019
    172
    世上无难事,只要肯放弃!
    dog82
    dog82
    Oct 10, 2019
    173
    go 语言的作者有很重的 unix 情节,go 的高并发和速度快是特点,语法的某些地方真的很拗
    laravel
    laravel
    Oct 10, 2019
    174
    go 的语法不奇怪,你学下 kotlin、swift、oc 或者 erlang
    Foreverdxa
    Foreverdxa
    Oct 10, 2019
    175
    我感觉挺简单的。。。几天就把全部的基础过了一遍。。
    ytll21
    ytll21
    Oct 10, 2019
    176
    对我来说,go 最大的问题是,太简单了,和 rust 一比较,我愉快的跑去用 rust 了
    zy445566
    zy445566
    Oct 10, 2019
    177
    放弃吧,和 NBA 一样,Go 创始人也对中国有敌意。
    keep china heart
    jss
    jss
    Oct 10, 2019
    178
    你行 你上...
    p1gd0g
    p1gd0g
    Oct 10, 2019
    179
    语法和格式化是两码事吧。
    hikarugo
    hikarugo
    Oct 10, 2019
    180
    不要纠结语言问题。。。。工作上需求驱动,业务上爱好驱动
    hikarugo
    hikarugo
    Oct 10, 2019
    181
    @fyxtc 业务=》业余
    Ravenddd
    Ravenddd
    Oct 10, 2019
    182
    我写惯了 java, 写 python 也有点不习惯, 适应一下就好了
    hengguao
    hengguao
    Oct 10, 2019
    183
    这里大多数不都是有头有脑的程序猿吗?怎么评论跟微博、头条似的,感觉不带脑子,只有逼乎才能理性讨论吗?
    @zy445566 另外,这个大佬说的这个不至于,同一个事不同维度看,抵制 NBA,可以让某国赚不到钱,抵制 GO 的话,不清楚对某国有没有损失,但对我们的话,何不拿起敌人的武器就是干他
    exploreXin
    exploreXin
    Oct 10, 2019❤️1
    184
    圈子不同,不必强融,编程语言本质上是编程哲学的具象化,你觉得有必要有分号的地方,有的语言就是觉得没必要,有分号违反哪条法律规定吗?但有的语言就是强制不允许有分号,管中规豹的看问题,你会发现,每一种编程语言都是语言的核心开发者对编程世界运作方式的哲学规划,底层早已经规定了最基本的思想限制,go 语言觉得理解不了,只能说明圈子不同,领域不同,思维方式不同,汝之蜜糖彼之砒霜,就是这样的。

    要强调一下,不是你的圈子容不下自己膈应的编程语言,而是编程语言容不下你,毕竟 go 的社区有千千万万的开发者,是人家的圈子容不下不适合他们哲学的人罢了,对于此,要么试着感受他们的哲学,要么离开,划清界限。
    dajj
    dajj
    Oct 10, 2019
    186
    改变下思维,你是用它挣钱的, 挣钱的事,能愉快吗。
    zhuangzhuang1988
    zhuangzhuang1988
    Oct 10, 2019
    187
    那就换个语言,多简单的事情
    geew
    geew
    Oct 10, 2019
    188
    @None123 #119 go mod 了解一下
    geew
    geew
    Oct 10, 2019
    189
    @huiyifyj #127 go mod 了解一下
    ben1024
    ben1024
    Oct 10, 2019
    190
    Go 语法的确很难习惯,语言很多换个喜欢的语法语言
    linsijia1002
    linsijia1002
    Oct 10, 2019
    191
    @janus77 没有用的包还要 import 进去干嘛??? 非要增加内存消耗吗?
    barbery
    barbery
    Oct 10, 2019
    192
    这都值得发个贴???克服个毛,语言那么多赶紧换一个
    meepo3927
    meepo3927
    Oct 10, 2019
    193
    欢迎来 JavaScript
    wangxiaoaer
    wangxiaoaer
    Oct 10, 2019
    194
    @linsijia1002 #191 编译的时候不能去掉吗?调试期间某些代码临时注释导致的某些包暂时没有用到,必须要清除,然后反复这个过程,你试过有多恶心吗?
    ke1e
    ke1e
    Oct 10, 2019 via Android
    195
    目前用 go mod 没什么不适呀,不知道哪里恶心
    wowiwj
    wowiwj
    Oct 10, 2019 via iPhone❤️1
    196
    9012 年都结束了,还是不断的重复 if err != nil,果然人类的本质就是复读机啊,还有泛型,你倒是上啊,吹了大半年了还是看不到任何结果,改变不了别人还是改变自己,我不用还不行么……,自从用了 rust,感觉是真的香。满足我所有的期待(゚ω゚)
    vipcc
    vipcc
    Oct 10, 2019 via Android❤️1
    197
    C#是我用过语法最优雅的,其次是 typescript。
    C++和 js 是我用过坑最多的语言,
    每个语言都有自己的特点,喜欢什么工具用什么
    cumt21g
    cumt21g
    Oct 10, 2019
    198
    rust 试下
    encro
    encro
    Oct 10, 2019
    199
    人生苦短,快学 GOLANG。

    1,一次开发,到处使用。( windows,linux,arm )
    2, 上手快(简单)
    3,性能好(协程)
    4,社区开源产品丰富( package 数目,GIT 开源项目数目上,除了 npm,pip,go 应该快赶上 composer 了)
    zhuangzhuang1988
    zhuangzhuang1988
    Oct 10, 2019
    200
    @wangxiaoaer 严重同意, if err 这个相对还好一点.
    1  2  3  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1548 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 198ms · UTC 18:33 · PVG 02:33 · LAX 10:33 · JFK 13:33
    ♥ Do have faith in what you're doing.