您的当前位置:首页go 面相对象编程(一)

go 面相对象编程(一)

2024-12-12 来源:哗拓教育

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指针也可以调用方法。(一般会在为结构定义的方法里面做判断)

显示全文