刚入坑,网上看了一些关于 Go 中使用面向对象的方法,感觉很难理解
1
reus 2017-06-08 10:41:02 +08:00
当然不适合。不要照搬其他语言的写法。
|
2
plqws 2017-06-08 11:35:03 +08:00 via iPhone
oop 和 fp 都鸡肋的一门神奇语言
|
3
rrfeng 2017-06-08 11:52:33 +08:00
面向 err != nil 编程 XD
其实是面向接口编程。接受了这个设定还蛮不错的 |
4
holmesabc 2017-06-08 11:53:03 +08:00
把 Go 看做 C,一切豁然开朗
|
5
hjc4869 2017-06-08 11:54:09 +08:00 via Android
不适合
|
6
Morriaty 2017-06-08 12:04:29 +08:00
go 没有继承
|
7
SuperMild 2017-06-08 12:17:43 +08:00
golang 连 class 都没有,所谓的方法也只是函数的语法糖。
不过不支持经典的面向对象是故意设计成这样的,有很多优点。 |
8
gowk 2017-06-08 12:43:40 +08:00 1
|
9
fatedier 2017-06-08 12:54:07 +08:00
面向接口编程
|
10
inFinityzc 2017-06-08 17:05:59 +08:00
面向 err != nil 编程 +1
|
11
flyspace15 OP @gowk 就是看打这篇文章的翻译版,感觉如果这么搞面向对象,代码写起来应该会很痛苦,看代码的人更痛苦吧
|
13
0asis 2017-06-08 17:40:29 +08:00 via iPhone
学了半天 Clojure 发现没有什么应用场景,弃坑了,可惜了这么优美的语法(以及若干买书的钱)
|
14
lepig 2017-06-08 17:48:18 +08:00
想请教下。没有 C/C++/Java 基础可以直接学 Go 吗?
第一门语言是 PHP |
19
u5f20u98de 2017-06-08 19:04:06 +08:00
Go 有面向对象?其实那只是操作结构体的函数而已。
还有 err != nil 不一定非要这么写这么多, 如果有大量出错就不继续执行的可以封个 func 有错误直接 panic 然后在 defer 里 recover 下,省好多事情。 |
20
nazor 2017-06-08 21:20:46 +08:00
有得必有失,要是非常完美,那就会淘汰很多语言了。
|
21
SlipStupig 2017-06-08 23:06:35 +08:00
@Morriaty 还是又继承的,跟 C 语言一样,可以采用 struct 继承
|
22
zjsxwc 2017-06-08 23:18:56 +08:00 via Android
应用 oop 的思想完全没问题,虽然没有了继承,但仍旧可以使用组合以及 mixin 的方式来处理对象关系。
|
23
HarrisonZ 2017-06-09 08:52:06 +08:00
golang 适合 oop 啊,只是不要继承,使用组合的方式扩展类。interface 完美支持 多态。还不要多余的声明,只要实现了 interface 定义的方法即可
|
24
HarrisonZ 2017-06-09 08:53:25 +08:00
@SlipStupig struct 怎么继承,最多是组合吧。Rob pike 特别不喜欢继承
|
25
qianguozheng 2017-06-09 10:52:55 +08:00
go 注重设计。而不仅仅是代码复用。
效率是她的一大特征。 面向对象,你想写当然可以,更何况 C 都可以封装 |