Golang Go语言中适合用面向对象的方式编程吗?
刚入坑,网上看了一些关于 Go 中使用面向对象的方法,感觉很难理解
Golang Go语言中适合用面向对象的方式编程吗?
当然不适合。不要照搬其他语言的写法。
更多关于Golang Go语言中适合用面向对象的方式编程吗?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
oop 和 fp 都鸡肋的一门神奇语言
面向 err != nil 编程 XD
其实是面向接口编程。接受了这个设定还蛮不错的
把 Go 看做 C,一切豁然开朗
不适合
go 没有继承
golang 连 class 都没有,所谓的方法也只是函数的语法糖。
不过不支持经典的面向对象是故意设计成这样的,有很多优点。
面向接口编程
面向 err != nil 编程 +1
就是看打这篇文章的翻译版,感觉如果这么搞面向对象,代码写起来应该会很痛苦,看代码的人更痛苦吧
这么一说是不适合,我之前还一直硬写成面向对象的,思维僵化了。
#7
学了半天 Clojure 发现没有什么应用场景,弃坑了,可惜了这么优美的语法(以及若干买书的钱)
想请教下。没有 C/C++/Java 基础可以直接学 Go 吗?
第一门语言是 PHP
据说 Clojure 是当今全球程序员薪资排名第一的开发语言呐
clojure 这 lisp 语法看上去 确实好新鲜
有 php 的基础很容易入门,理解指针和引用会麻烦一点。
对了,处理 Json 会让你无比怀念 php。
大概是因为 lisp 的语法拦住了大部分初级程序员吧
Go 有面向对象?其实那只是操作结构体的函数而已。
还有 err != nil 不一定非要这么写这么多,
如果有大量出错就不继续执行的可以封个 func 有错误直接 panic 然后在 defer 里 recover 下,省好多事情。
有得必有失,要是非常完美,那就会淘汰很多语言了。
还是又继承的,跟 C 语言一样,可以采用 struct 继承
应用 oop 的思想完全没问题,虽然没有了继承,但仍旧可以使用组合以及 mixin 的方式来处理对象关系。
golang 适合 oop 啊,只是不要继承,使用组合的方式扩展类。interface 完美支持 多态。还不要多余的声明,只要实现了 interface 定义的方法即可
struct 怎么继承,最多是组合吧。Rob pike 特别不喜欢继承
go 注重设计。而不仅仅是代码复用。
效率是她的一大特征。
面向对象,你想写当然可以,更何况 C 都可以封装
在Golang(通常简称为Go)语言中,虽然它不像Java或C++那样传统意义上的纯面向对象编程语言,但Go语言依然提供了足够的机制来支持面向对象编程(OOP)的核心理念,如封装、继承和多态,尽管这些特性在Go中的实现方式与传统OOP语言有所不同。
-
封装:Go通过结构体(struct)和方法(method)接收者来实现封装。你可以将数据和操作这些数据的方法绑定在一起,从而隐藏内部实现细节。
-
继承:Go没有直接的类继承机制,但可以通过嵌套结构体和接口来实现类似的功能。嵌套结构体允许你组合不同的数据结构,而接口则提供了一种抽象层,使得不同类型的结构体可以实现相同的接口方法,达到多态的效果。
-
多态:Go的接口是实现多态的关键。一个接口可以定义一组方法,而任何实现了这些方法的类型都隐式地实现了该接口。这允许函数以接口类型为参数,从而接受多种类型的值,实现动态行为。
因此,虽然Go的OOP风格更为简洁和直接,但它完全能够支持面向对象的编程范式。在Go中,更常见的是通过组合和接口来实现代码复用和模块化,而不是传统的类继承。这种设计哲学使得Go代码更加清晰、易于理解和维护。