提交 d585c86a 编写于 作者: _Fighter's avatar _Fighter

2021年12月13日

上级 81a9ebb7
package main
package tree
import "fmt"
type treeMenuNode struct {
name string
perent, child *treeMenuNode
type TreeMenuNode struct {
Name string
Perent, Child *TreeMenuNode
}
/*
......@@ -13,62 +13,15 @@ type treeMenuNode struct {
*/
// 值接收者
func (node treeMenuNode) print() {
fmt.Println(node.name)
func (node TreeMenuNode) Print() {
fmt.Println(node.Name)
}
//指针接收者
func (node *treeMenuNode) setName(name string) {
func (node *TreeMenuNode) SetName(name string) {
if node == nil {
fmt.Println(" Setting value to nil node. Ignorde.")
return
}
node.name = name
}
// 遍历
func (node *treeMenuNode) traverse() {
if node == nil {
return
}
node.perent.traverse()
node.print()
node.child.traverse()
}
func main() {
var menu treeMenuNode
menu = treeMenuNode{name: "角色管理"}
menu.perent = &treeMenuNode{}
menu.child = &treeMenuNode{"增加用户", nil, nil}
menu.child.child = new(treeMenuNode)
org := treeMenuNode{name: "xx研发中心"}
org.child = &treeMenuNode{"A组", nil, nil}
nodes := []treeMenuNode{
{name: "xxx系统"},
{name: "测试"},
{"系统管理", &menu, &org},
}
fmt.Println(nodes)
fmt.Println("调用自定义方法: ")
menu.print()
menu.child.child.setName("自定义名称")
menu.child.child.print()
var xMenu *treeMenuNode
xMenu.setName("测试参数")
xMenu = &org
xMenu.setName("测试参数2")
xMenu.print()
fmt.Println(" 遍历菜单树")
menu.traverse()
org.traverse()
node.Name = name
}
package tree
// 遍历
func (node *TreeMenuNode) Traverse() {
if node == nil {
return
}
node.Perent.Traverse()
node.Print()
node.Child.Traverse()
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册