Golang 之 面向物件struct ,定義結構體方法(二)
阿新 • • 發佈:2018-11-12
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()
}