Я наблюдаю странное явление во время зацикливания очереди, реализованной на срезе, и никогда раньше не испытывал ее:
fmt.Printf("BEFORE LOOP\n")
for len(queue) > 0 {
fmt.Printf("BEFORE-QUEUE=(%d) %v\n", len(queue), queue)
currentPath, queue := queue[0], queue[1:]
fmt.Printf("PATH=[%s] AFTER-QUEUE=(%d) %v\n", currentPath, len(queue), queue)
}
fmt.Printf("AFTER LOOP\n")
Вывод:
BEFORE LOOP
BEFORE-QUEUE=(1) [../../test/asset]
PATH=[../../test/asset] AFTER-QUEUE=(0) []
BEFORE-QUEUE=(1) [../../test/asset]
PATH=[../../test/asset] AFTER-QUEUE=(0) []
BEFORE-QUEUE=(1) [../../test/asset]
PATH=[../../test/asset] AFTER-QUEUE=(0) []
BEFORE-QUEUE=(1) [../../test/asset]
PATH=[../../test/asset] AFTER-QUEUE=(0) []
BEFORE-QUEUE=(1) [../../test/asset]
...
Этоработает через "Go Run" под версией 1.11.4.Я не уверен, что в моей ситуации / дизайне вызвало такое поведение.
Мысли / Анализы?