Go:不执行真实条件
Go: truthy condition not executing
我正在为我的一个应用程序使用 neo4j。
在 运行 查询之后,如果找到值,result.Next()
returns bool
var matches []int
fmt.Println(result.Next(), "<== result NEXT ???") // this prints true
if result.Next() {
// for some reason this block won't run!
fmt.Println("Assigning the values to the var")
matches = result.Record().Values()[0].([]int)
fmt.Println("Matches found", matches)
}
非常感谢您的帮助,坚持了几个小时
调用 result.Next()
进入下一行。如果你调用它两次,你会跳过一行。 result.Next()
不是幂等的!如果你只有一个结果,调用 result.Next()
,第二个调用永远不会 return true
.
如果需要在多个地方检查result.Next()
的结果,将其存储在一个变量中:
var matches []int
hasNext := result.Next()
fmt.Println(hasNext, "<== result NEXT ???")
if hasNext {
fmt.Println("Assigning the values to the var")
matches = result.Record().Values()[0].([]int)
fmt.Println("Matches found", matches)
}
引用自官方文档:Consuming results:
for result.Next() {
list = append(list, result.Record().Values[0].(string))
}
如您所见,只需调用 result.Next()
.
即可迭代结果
我正在为我的一个应用程序使用 neo4j。
在 运行 查询之后,如果找到值,result.Next()
returns bool
var matches []int
fmt.Println(result.Next(), "<== result NEXT ???") // this prints true
if result.Next() {
// for some reason this block won't run!
fmt.Println("Assigning the values to the var")
matches = result.Record().Values()[0].([]int)
fmt.Println("Matches found", matches)
}
非常感谢您的帮助,坚持了几个小时
调用 result.Next()
进入下一行。如果你调用它两次,你会跳过一行。 result.Next()
不是幂等的!如果你只有一个结果,调用 result.Next()
,第二个调用永远不会 return true
.
如果需要在多个地方检查result.Next()
的结果,将其存储在一个变量中:
var matches []int
hasNext := result.Next()
fmt.Println(hasNext, "<== result NEXT ???")
if hasNext {
fmt.Println("Assigning the values to the var")
matches = result.Record().Values()[0].([]int)
fmt.Println("Matches found", matches)
}
引用自官方文档:Consuming results:
for result.Next() {
list = append(list, result.Record().Values[0].(string))
}
如您所见,只需调用 result.Next()
.