我在测试用例失败时打印结构时遇到问题。它是指向结构指针片段的指针,或*[]*X
。问题是我需要知道切片内X
- 结构的内容,但我不能让它打印整个链。它只打印它们的地址,因为它是一个指针。我需要它来遵循指针。
然而这是无用的,因为我要测试的函数修改了它们的内容,并且修改测试代码不使用指针只意味着我没有用指针测试代码(这样就不行了)。
此外,只是循环切片不起作用,因为真正的函数使用反射并可能处理多个指针层。
简化示例:
package main
import "fmt"
func main() {
type X struct {
desc string
}
type test struct {
in *[]*X
want *[]*X
}
test1 := test{
in: &[]*X{
&X{desc: "first"},
&X{desc: "second"},
&X{desc: "third"},
},
}
fmt.Printf("%#v", test1)
}
示例输出:
main.test{in:(*[]*main.X)(0x10436180), want:(*[]*main.X)(nil)}
答案 0 :(得分:10)