所以,我已經寫 Go 好幾年了,雖然我知道 for 回圈比“通常”的日常情況更多,但我只是不太明白發生了什么。
我的意思是,我可以使用它,但我不明白。
for key, _, ok := it.Next(); ok; key, _, ok = it.Next()
它來自這里的不可變基數樹包:https : //github.com/hashicorp/go-immutable-radix。
我實際上是問,因為為了檢索我放在樹中的資料,我稍微改變了代碼 () _ 到 blob),但現在我不確定我是否應該在第二部分做同樣的事情。
for key, blob, ok := it.Next(); ok; key, _, ok = it.Next()
uj5u.com熱心網友回復:
回圈從呼叫 開始,it.Next()只要為ok真就會繼續。在每個回圈結束時ok重置it.Next()。在每次迭代中,回圈也會設定key。
您的修改blob在初始化時設定,但它永遠不會blob再次設定。對于所有迭代,blob將具有它從 中獲得的第一個值it.Next()。您很可能也應該blob在回圈的最后一個條件上設定,這樣您就可以獲得blob下一個元素的 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/348120.html
