美文网首页
go-面向对象的理解

go-面向对象的理解

作者: phpdi | 来源:发表于2019-02-19 16:50 被阅读0次

1.如何实例化对象

传址方式

注意:传址是PHP中默认使用的方式,例如 $a=new b()

  • rect1 := new(Rect)
  • rect2 := &Rect{}

传值方式

注意:PHP中要实现传值,需要使用clone关键字,go中直接赋值的方式是传值

  • a := Rect{}

2.调用对象的方法,先看如下代码

simple.go

type SimpleEngine struct {

}
func (this *SimpleEngine) Run(seeds ...Request)  {}

main.go

func main()  {
    engine.SimpleEngine{}.Run()
}

在main中直接调用run会报错:

 cannot call pointer method on engine.SimpleEngine literal
 cannot take the address of engine.SimpleEngine literal

原因是Run方法的接受者是指针,相当于PHP对象的方法,必须要实例化对象后才能调用,而如果想要通过engine.SimpleEngine{}.Run()直接调用,就需要将Run方法的接受者定义为

type SimpleEngine struct {

}
func (this SimpleEngine) Run(seeds ...Request)  {}

此时Run方法相当于静态函数,不用实例化对象就可以直接调用此方法

相关文章

  • go-面向对象的理解

    1.如何实例化对象 传址方式 注意:传址是PHP中默认使用的方式,例如 $a=new b() rect1 := n...

  • 面向对象

    面向对象基础 目标 理解面向对象 类和对象 添加和获取对象属性 魔法方法 一. 理解面向对象 面向对象是一种抽象化...

  • 理解面向对象

    理解面向对象 阅读知乎大牛对面向对象的讨论后,写下自己的总结和理解。知乎 面向对象的原本特性 面向对象原本的特性(...

  • 面向对象:创建对象&继承

    博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...

  • 面向对象的三大基本特征和五大设计原则

    1、面向对象概念 1.1、理解面向对象 面向对象是相对面向过程而言; 面向对象和面向过程都是一种思想; 面向过程:...

  • 面向对象--理解对象

    面向对象(Object-Oriented OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多...

  • 面向对象—理解对象

    什么是对象? 我们可以把ECMAScript的对象想象成散列表,也就是一组名值对,其中值可以是数据和函数。 对象的...

  • 面向对象

    1.面向对象理解 2.面向对象关系图

  • JS面向对象精要(二)_函数

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • JS面向对象精要(三)_理解对象

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

网友评论

      本文标题:go-面向对象的理解

      本文链接:https://www.haomeiwen.com/subject/cxjfyqtx.html