分享
Golang的面向对象
傻梦兽 · · 1156 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
在golang中,面向对象一直是一个纠纷,怎么说好呢。就是官网说没有面向对象这个概念,可是又给出了类似面向对象的概念。
和其他语言不同Golang只有接口和结构体分别为 interface 和 struct
我们以javascript es6为例子做对比
class ClassName {
public name; // 成员属性
}
我们一个类有哪些属性,一般的语言和以上的写法是差不多的。可是到了golang的话,就有点变味了。
type ClassName struct {
name string;
}
我们有时候还需要在类中添加行为(方法)。我们在其他语言通常是
class ClassName {
public name; // 成员属性
public setName(name){}
}
和在golang的写法,你先要定义一个结构体,然后再结构体外面定义行为方法
type ClassName struct {
name string;
}
func (c *ClassName) setName (name string) {}
func main(){
c := ClassName{}
c.setName("M")
}
我们有需要还需要定义接口来实现多态,在golang中,实现接口并没有强制约束,只要你实现了我的方法,我就认为你实现了我的接口
type Foo interface{
qux()
}
type Bar struct {}
type Baz struct {}
func (b Bar) qux() {}
func (b Baz) qux () {}
func main() {
var f Foo
f = Bar{}
f = Baz {}
}
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1156 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
在golang中,面向对象一直是一个纠纷,怎么说好呢。就是官网说没有面向对象这个概念,可是又给出了类似面向对象的概念。
和其他语言不同Golang只有接口和结构体分别为 interface 和 struct
我们以javascript es6为例子做对比
class ClassName {
public name; // 成员属性
}
我们一个类有哪些属性,一般的语言和以上的写法是差不多的。可是到了golang的话,就有点变味了。
type ClassName struct {
name string;
}
我们有时候还需要在类中添加行为(方法)。我们在其他语言通常是
class ClassName {
public name; // 成员属性
public setName(name){}
}
和在golang的写法,你先要定义一个结构体,然后再结构体外面定义行为方法
type ClassName struct {
name string;
}
func (c *ClassName) setName (name string) {}
func main(){
c := ClassName{}
c.setName("M")
}
我们有需要还需要定义接口来实现多态,在golang中,实现接口并没有强制约束,只要你实现了我的方法,我就认为你实现了我的接口
type Foo interface{
qux()
}
type Bar struct {}
type Baz struct {}
func (b Bar) qux() {}
func (b Baz) qux () {}
func main() {
var f Foo
f = Bar{}
f = Baz {}
}