Variables 将指针追加到Golang中的切片

Variables 将指针追加到Golang中的切片,variables,pointers,go,slice,Variables,Pointers,Go,Slice,我想将指针附加到切片。是否可能..?在Partentnode.children中,我想将X作为指针附加到切片上 func树(Parentnode*Node){ 如果IsvisitedNode(Parentnode.currentvalue-1){ m:=MovesArray[Parentnode.currentvalue-1] 对于j:=0;j索引错误 var visithistory [64]bool func IsvisitedNode(position int) bool {

我想将指针附加到切片。是否可能..?在Partentnode.children中,我想将X作为指针附加到切片上

func树(Parentnode*Node){
如果IsvisitedNode(Parentnode.currentvalue-1){
m:=MovesArray[Parentnode.currentvalue-1]
对于j:=0;j<8;j++{
如果m[j]!=0{
变量X*节点
X.parentnode=parentnode
X.currentvalue=m[j]
如果IsvisitedNode(m[j]){
Parentnode.children=append(Parentnode.children,*X)
树(X)
}
}
}
}
}

您有一个“一次关闭”错误。 主要设置
Y.currentvalue=1
。 然后在
树中
currentvalue走到
64

X.currentvalue = m[j]
fmt.Printf("cv: %v\n",X.currentvalue) //walks to 64
if IsvisitedNode(m[j]) {
一个in
isvisited节点
可以根据具有64个索引的
visitistory
测试该索引,因此在索引63处停止。->索引错误

var visithistory [64]bool

func IsvisitedNode(position int) bool {
    if visithistory[position] == true {

如果你设置
var visitistory[65]bool,事情就会发生,但我认为你需要重新考虑一下这里的逻辑。

Index
j
在slice
m
中不存在。我会添加一些print语句,看看哪里出了问题。对于j:=0,我也会添加
;j<8;如果你不能绝对确定
m
->
m[j]有8个或更多的索引,那么j++{
->
m[j]就是自找麻烦。更好的是
对于currval:=range m{
在变量m中肯定有8个值,包括负位置的零,这就是我包含语句m[j]的原因!=0。@Ricky这就是我在IsVisitedNode函数中使用currentvalue-1的原因。@Ricky我确实尝试过,但在只打印了三个值后程序退出。其中最后一个值是64,这在
Visitistitory
中不是有效的索引,因为最后一个索引是63。
var visithistory [64]bool

func IsvisitedNode(position int) bool {
    if visithistory[position] == true {