我正在尝试创建一个新结构并将其原始值用作新结构的成员。但是,它们最终都是相同的引用(即payload和payload.prev),这会导致我的代码中的无限递归。我感谢任何帮助或提示。
package main
type Sieve struct {
prime int
prev *Sieve
}
func Test(payload *Sieve, n int) {
if payload.prime*(n/payload.prime) == n {
} else if payload.prev == nil {
println(n)
// payload and payload.prev end up being the same reference
// and it causes infinite loop
*payload = Sieve{
prime: n,
prev: payload,
}
} else {
Test(payload.prev, n)
}
}
func main() {
var p = Sieve{
prev: nil,
prime: 2,
}
println(2)
for i := 2; i < 10; i++ {
Test(&p, i)
}
}
守着一只汪
开心每一天1111
婷婷同学_
相关分类