我在我的一個應用程序中使用 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) }我非常感謝您的幫助,堅持了幾個小時
1 回答

慕桂英3389331
TA貢獻2036條經(jīng)驗 獲得超8個贊
調(diào)用result.Next()繼續(xù)到下一行。如果你調(diào)用它兩次,你會跳過一行。result.Next()不是冪等的!如果你只有一個結(jié)果,調(diào)用result.Next(),第二個調(diào)用將永遠不會返回true。
如果您需要result.Next()在多個位置檢查結(jié)果,請將其存儲在變量中:
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)
}
引用官方文檔:消費結(jié)果:
for result.Next() {
list = append(list, result.Record().Values[0].(string))
}
如您所見,只需調(diào)用result.Next().
- 1 回答
- 0 關注
- 94 瀏覽
添加回答
舉報
0/150
提交
取消