Go 适合用面向对象的方式编程吗?

2017-06-08 10:32:37 +08:00
 flyspace15

刚入坑,网上看了一些关于 Go 中使用面向对象的方法,感觉很难理解

3507 次点击
所在节点    Go 编程语言
25 条回复
reus
2017-06-08 10:41:02 +08:00
当然不适合。不要照搬其他语言的写法。
plqws
2017-06-08 11:35:03 +08:00
oop 和 fp 都鸡肋的一门神奇语言
rrfeng
2017-06-08 11:52:33 +08:00
面向 err != nil 编程 XD

其实是面向接口编程。接受了这个设定还蛮不错的
holmesabc
2017-06-08 11:53:03 +08:00
把 Go 看做 C,一切豁然开朗
hjc4869
2017-06-08 11:54:09 +08:00
不适合
Morriaty
2017-06-08 12:04:29 +08:00
go 没有继承
SuperMild
2017-06-08 12:17:43 +08:00
golang 连 class 都没有,所谓的方法也只是函数的语法糖。

不过不支持经典的面向对象是故意设计成这样的,有很多优点。
gowk
2017-06-08 12:43:40 +08:00
fatedier
2017-06-08 12:54:07 +08:00
面向接口编程
inFinityzc
2017-06-08 17:05:59 +08:00
面向 err != nil 编程 +1
flyspace15
2017-06-08 17:14:43 +08:00
@gowk 就是看打这篇文章的翻译版,感觉如果这么搞面向对象,代码写起来应该会很痛苦,看代码的人更痛苦吧
weer0026
2017-06-08 17:19:46 +08:00
这么一说是不适合,我之前还一直硬写成面向对象的,思维僵化了。
@SuperMild #7
0asis
2017-06-08 17:40:29 +08:00
学了半天 Clojure 发现没有什么应用场景,弃坑了,可惜了这么优美的语法(以及若干买书的钱)
lepig
2017-06-08 17:48:18 +08:00
想请教下。没有 C/C++/Java 基础可以直接学 Go 吗?

第一门语言是 PHP
xyjtou
2017-06-08 18:19:34 +08:00
@0asis

据说 Clojure 是当今全球程序员薪资排名第一的开发语言呐
ThinkCat
2017-06-08 18:21:32 +08:00
@0asis clojure 这 lisp 语法看上去 确实好新鲜
vus520
2017-06-08 18:23:47 +08:00
@lepig 有 php 的基础很容易入门,理解指针和引用会麻烦一点。

对了,处理 Json 会让你无比怀念 php。
0asis
2017-06-08 18:43:00 +08:00
@xyjtou 大概是因为 lisp 的语法拦住了大部分初级程序员吧
u5f20u98de
2017-06-08 19:04:06 +08:00
Go 有面向对象?其实那只是操作结构体的函数而已。

还有 err != nil 不一定非要这么写这么多,
如果有大量出错就不继续执行的可以封个 func 有错误直接 panic 然后在 defer 里 recover 下,省好多事情。
nazor
2017-06-08 21:20:46 +08:00
有得必有失,要是非常完美,那就会淘汰很多语言了。

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

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

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

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

© 2021 V2EX