当前位置:首页>python>我学过 Python C/C++ Lua JavaScript Java,为什么学不进去 Go 语言?

我学过 Python C/C++ Lua JavaScript Java,为什么学不进去 Go 语言?

  • 2026-09-02 20:36:43
我学过 Python C/C++ Lua JavaScript Java,为什么学不进去 Go 语言?
不管周围的人怎样评价一个人,如果他对你好,他就是一个好人!
同样的,如果周围的人都觉得他是一个好人,但他就是对你不好,那他就是一个坏人!
这就是“规矩”!
亏待自己,天地不容!
所以,不管语言怎么样,你学不进去,就一定有原因!
我刚开始学Go的时候,就是这种感觉!
为什么会出现这个情况?
我反思了一下,就是一种“失控感“!
1、路径
写Java的时候,Java的建议是一个文件就是一个class,并且文件名必须是Class的名称。文件夹的全路径,跟Java的package的路径相一致。
这种做法,怎么说呢?
非常固定,甚至觉得死板!
但是,到了Go就不一样了。
Go的package完全突破了这种限定。一个package的方法,可以分布在一个目录的多个文件里面,条理性完全被打乱。
到目前为止,我依然没有适应!
2、err
总是有这样的代码:
ret,err := SomeMethod()if err != nil {     log.panic("error")}
每一个SomeMethod几乎都是这种模式。
这种模式,给人的感觉是什么呢?
失去了一种写程序的流畅感!
本来,写程序应该跟写诗一样,哗哗的写下来。就这种突然加入的err,就像那种毛胚房一样,一层层的砖块就这样露在外面,砖层之间的水泥灰就这样暴露在空气中,没有那种一面白墙的美感。
读这种程序的时候,又像你坐着车,不是从一个光滑的坡度下来,而是从一个有很多台阶的坡下来,那种颠簸感,让人头疼。
go为什么不来个try/catch?
把正常代码放在一起,把异常代码放在一起不好吗?
分开,多清爽!
Go语言,就像乔布斯说微软的那样,没有品味,不高级!
3、语法
我对go语言的后置语法,也还有点意见!
简单的还可以:
var str string
问题就出在复杂一点的结构:
var dict map[string]int
这是什么东西?
不是后置语法吗?
怎么又成了正常语法:
dict["apple"] = 1dict["banana"] = 2
好吧,事不过三,吐槽也不要超过3个!
总结一下,就是Go语言有一点“特立独行”的味道,跟其它语言不是一个范。
看看C++、Java、Javascript,其实都是C++系语法,Python是一系语法,lua是另外一系语法。
Go,跟其它语言不一样,它是一门具有自身哲学的语言!
其它语言,上手学就可以了!
但是,学Go语言,就必须理解它。
本质上来讲,Go是一门非常强势的语言,就是说这门语言的设计者在开发Go的时候,并没有考虑使用者的感受,而是按照自己的想法来干!想用Go,就必须遵守某些规则!
典型的一个例子,就是“{"的位置。
在其它语言里面是一样的两个语句:
if cond {}
if cond{}
在Go语言,就是编译通不过,必须使用第一种语法!
所以,Go的设计者就是这样。
这种设计,有点像人们讲的“狗和猫”的区别!
狗,衣食无忧,但却要受人管束!
流浪猫,自由自在,却要自己解决肚子吃饭的问题!
选择哪一种,全看人生态度!
你喜欢哪一种?
我是明月,
go 人生()!

最新文章

随机文章