这是我的简单情况。 我想用它来查找类型树菜单的数据 这种情况下直接运行无错误 在调试模式下,断点命中该函数,并且第二次递归输入方法返回错误 这是我的代码
var data []Student=[]Student{
{Name:"animals",Sort:1,Parent:0,Level:1,Id:1},
{Name:"plant",Sort:2,Parent:0,Level:1,Id:2},
{Name:"fungus",Sort:3,Parent:0,Level:1,Id:3},
{Name:"pea",Sort:1,Parent:2,Level:2,Id:4},
{Name:"cat",Sort:2,Parent:1,Level:2,Id:5},
{Name:"dog",Sort:3,Parent:1,Level:2,Id:6},
{Name:"mushroom",Sort:1,Parent:3,Level:2,Id:7},
{Name:"yellow_mushroom",Sort:1,Parent:7,Level:3,Id:8},
{Name:"yellow_dog",Sort:1,Parent:6,Level:3,Id:9},
}
result:=make([]Student,len(data))
flag:=make([]bool,len(data))
index:=0
Find(&result,data,flag,1,0,&index)
func Find (result *[]Student,data []Student,flag []bool ,level ,parent int ,index *int){
if level>4{
return
}
for i:=0;i< len(data);i++{
if data[i].Level==level&&data[i].Parent==parent&&flag[i]==false{
(*result)[*index]=data[i]
fmt.Println(*index,data[i])
*index++enter code here
flag[i]=true
Find(result,data,flag,level+1,data[i].Id,index)
}
}
}
我的编辑是goland。起初我以为可能是编辑
但是当我使用golang dlv时,发生类型错误。
异常令人困惑
这是错误消息