1. 程式人生 > >Golang 之 面向物件struct ,定義結構體方法(二)

Golang 之 面向物件struct ,定義結構體方法(二)

package main

import "fmt"

type treeNode struct {
    value int
    left, right * treeNode
}
// 給結構體定義列印方法,其中(node treeNode)表示該方法的接受者是那個結構體
func (node treeNode) print()  {
    fmt.Println(node.value)
}

// 給結構體定義設定值方法
func (node *treeNode)  setNode(value int) {
    node.value = value
}

func createNode(val int
) *treeNode { return &treeNode{ value: val} } func main() { var root treeNode root = treeNode{ value: 3} root.left = &treeNode{} root.right = &treeNode{5,nil,nil} root.right.left = new(treeNode) root.left.right = createNode(2) root.print() root.setNode(1
) root.print() // Go 自動處理方法呼叫時的值和指標之間的轉化。你可以使 // 用指標來呼叫方法來避免在方法呼叫時產生一個拷貝,或者 // 讓方法能夠改變接受的資料。 root.left.print() root.right.print() }