Golang-打印变量的内容
我是Golang的新手,我想知道如何打印Golang-打印变量的内容,go,Go,我是Golang的新手,我想知道如何打印doc.Find()返回的结构的实际值。我用的是这种方法。 例如,如果我这样做: casesCounter := doc.Find(".cases-counter li") fmt.Printf("%T\n", casesCounter) fmt.Println(&casesCounter) fmt.Println(casesCounter) 我也尝试过使用指针: casesCounter := *doc.Find(".cases-counter
doc.Find()
返回的结构的实际值。我用的是这种方法。
例如,如果我这样做:
casesCounter := doc.Find(".cases-counter li")
fmt.Printf("%T\n", casesCounter)
fmt.Println(&casesCounter)
fmt.Println(casesCounter)
我也尝试过使用指针:
casesCounter := *doc.Find(".cases-counter li")
对于每个案例,我都打印了内存地址:
&{[0xc0004108c0 0xc000410b60] 0xc00023f720 0xc000230150}
{[0xc0004108c0 0xc000410b60] 0xc00023f720 0xc000230150}
但是,如何获得此结构的实际值,就像我在javascript中执行
console.log()
时一样?您应该尝试以下代码:
for _, v := range casesCounter.Nodes {
fmt.Printf("%+v", v)
}
从电话里
doc.Find(selector string)
返回指向所选内容的指针
因此,您应该通过选择来访问数据,选择的结构是
我假设您想要访问节点,正如Latif所提到的,这可以通过一个循环来完成,因为这是一个如上所述的数组
for _, v := range casesCounter.Nodes {
fmt.Printf("%+v", v)
}
取消对指针的引用,
*
是一个option@NorbertvanNobelen我曾尝试将*放在doc.Find之前,但这也给了我内存地址。返回值casescenter就是您想要处理的。请尝试fmt.Printf(“%+v”,*casescenter)
(假设casescenter是指针,因为当前示例无法显示该指针)(如果您想展示一个工作示例,请使用go Played是的,这是正确的,谢谢@NorbertvanNobelenIt始终归结为:您必须阅读doc.Find实际返回的类型的文档,然后正确处理此类型,例如,通过取消引用所有指针并调用适当的方法(通常是String()).For any not指针格式化与%#v配合良好。