我正在将 neo4j 用于我的一个应用程序。
运行查询后,如果找到值,result.Next()则返回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)
}
Run Code Online (Sandbox Code Playgroud)
我真的很感激你的帮助,坚持了几个小时
呼叫result.Next()继续到下一行。如果调用两次,则会跳过一行。result.Next()不是幂等的!如果您只有一个结果,即调用result.Next(),则第二个调用将永远不会返回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)
}
Run Code Online (Sandbox Code Playgroud)
引用官方文档:消费结果:
for result.Next() {
list = append(list, result.Record().Values[0].(string))
}
Run Code Online (Sandbox Code Playgroud)
如您所见,只需调用 即可迭代结果result.Next()。
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |