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

2019-10-09 15:21:03 +08:00
 dhairoot

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

31967 次点击
所在节点    程序员
277 条回复
missqso
2019-10-09 16:15:52 +08:00
桌下放个垃圾桶🗑
wysnylc
2019-10-09 16:18:21 +08:00
写 py 的接受不了 java
但是写 java 的可以兼容 py 只是觉得很奇怪
怎么说呢,由俭入奢易由奢入俭难,py 所谓的"自由"是放弃严谨带来的
anonymous256
2019-10-09 16:18:46 +08:00
1. 变量声明的顺序, C/C++风格, 先类型,后变量名, go 是反的.
2. go 的花括号强制从行末开始, 并且不能换行.

就这 2 点, 我也觉得 go 的语法反人类的. 根本原因是: 大多数人的大学课程都有 C 语言, C 语言应该也是大多数程序员的第一门编程语言, 它的风格潜移默化的影响. 难免会觉得 go 真的反人类.

http://www.yinwang.org/blog-cn/2014/04/18/golang 王垠对 Go 语言的综合评价, 有一部分就很客观
tt67wq
2019-10-09 16:20:15 +08:00
那你可以去学一下 erlang 的语法,然后你就升天了
linxl
2019-10-09 16:21:17 +08:00
难受中...
ipwx
2019-10-09 16:21:48 +08:00
我同意 @Tyanboot。我 c++ 用的还挺爽的,正因此觉得 go 语法不太能接受
VDimos
2019-10-09 16:22:01 +08:00
@whitehack rust 语法上没有什么奇怪的地方吧
OhYee
2019-10-09 16:22:43 +08:00
其实写习惯就好了……
虽然我也觉得类型放后面很蠢,但是我现在已经习惯到写 C 的时候也放后面的状态……

emmm 多语言混着写容易精分
StarUDream
2019-10-09 16:23:18 +08:00
习惯了,用着挺舒服的。。
justin2018
2019-10-09 16:28:03 +08:00
习惯 ta 你就爱上了 ta 😁
allenhu
2019-10-09 16:29:06 +08:00
@Tyanboot 我也不明白,c++哪里像 go 了
allenhu
2019-10-09 16:31:44 +08:00
go 的语法,某种程度上可以说是为了与众不同而与众不同,真没那个必要,采用普世的语法完全无影响。但是它非要倒着写,哈哈
xiaoxinxiaobai
2019-10-09 16:32:26 +08:00
写就完事了,写多了就好了,不是拿来写的吗
justfun
2019-10-09 16:33:25 +08:00
@sadfQED2 #3 看来是没说完就被打死了😂
dinjufen
2019-10-09 16:36:23 +08:00
我也觉得语法和老牌语言 C、C++、Java 等差别较大,可能是习惯的原因吧
GPIO
2019-10-09 16:37:06 +08:00
正好最近在学 Go,我就来说一下我无法忍受的几点吧。
1.强制定义{}需要换行,却又允许使用不同风格的写法定义变量,自相矛盾;
2.select case switch case 是完全不同的模型却用同一个关键字;
3.array 定义成值类型,slice 定义成引用类型,底层引用 array,但是 slice 扩容会导致内存再分配指针失效的问题,试图隐藏指针然而这是不可能的;
4.裸返回这种东西就不应该存在。
以上,来自一个 Go 新手的吐槽。
AlisaDestiny
2019-10-09 16:37:35 +08:00
如果你和 C 比就会觉得写 GO 太舒服了。
gamexg
2019-10-09 16:37:52 +08:00
@OhYee #48
@anonymous256 #43

我觉得先打变量名,后输入类型更方便些。
个人习惯,声明变量时,大脑先想的变量用途,即名字,后考虑具体类型,写 c 时觉得有些反思维。

不过对于大括号在行尾非常不习惯,对 go 的 error 未学习前也是很反感。最初就因为这两点不想学习 go 语言。

现在对于行末的 { 被强迫适应了。
a591826944
2019-10-09 16:38:37 +08:00
要有开放的心态
kasumigaoka
2019-10-09 16:39:05 +08:00
@allenhu 也不是说为了与众不同吧 Go 独特的类型声明语法确实在某些程度上带来了一些便利( https://blog.golang.org/gos-declaration-syntax

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

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

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

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

© 2021 V2EX