go 面相对象编程(一)

go面相对象的特性


仅支持封装,不支持继承和多态

没有class,只有struct




go语言没有构造函数这一说法,也不需要构造函数,如果某些时候的确需要控制他的构造,我们可以使用自定义工厂函数。


package tree

import "fmt"

type Nodestruct {

Value      int

Left, Right *Node

}

func (node Node) Print() {

fmt.Print(node.Value," ")

}

func (node *Node) SetValue(value int) {

if node == nil {

fmt.Println("Setting Value to nil " +

"node. Ignored.")

return

  }

node.Value = value

}

func CreateNode(value int) *Node {

return &Node{Value: value}

}


为结构定义方法


显示定义和命名方法接收者


只有使用指针作为方法的接收者,才可以改变结构内容。


nil指针也可以调用方法。(一般会在为结构定义的方法里面做判断)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容