(1)go语言的面向对象
(2)struct的创建
package main
import "fmt"
func main() {
type treeNode struct {
value int
left, right *treeNode //指针类型
}
//不论地址还是结果本身,都用“.” 来访问成员
var root treeNode //root是一个实例
root = treeNode{value: 3}
fmt.Println(root) //{3 <nil> <nil>}
root.left = &treeNode{}
fmt.Println(root) //{3 0x1104c0f0 0x1104c100}
}
(3)为struce创建方法
package main
import "fmt"
type treeNode struct {
value int
}
//为结构体创建方法
func (node treeNode) print() {
fmt.Println(node.value)
}
func main() {
var root treeNode
root = treeNode{value: 3}
root.print() //3
}
(4)使用指针作为方法接收者,改变结构内容
package main
import "fmt"
type treeNode struct {
value int
}
//为结构体创建方法
func (node treeNode) print() {
fmt.Println(node.value)
}
//不适用指针“*treeNode',则不能改变value的值
//func (node treeNode) setValue(value int) {
// node.value = value
//}
//只有使用只用指针才可以改变结构体内容
func (node *treeNode) setValue(value int) {
node.value = value
}
func main() {
var root treeNode
root = treeNode{value: 3}
root.print() //3
root.setValue(6)
root.print() //6
}
(1)封装
(2)包