Есть ли объяснение, почему цикл, использующий uint64, не остановится на 0?
Я пробовал то же самое для цикла с int, и он работает, как и ожидалось.
package main
import (
"fmt"
)
func main() {
i := uint64(5)
for ; i>=uint64(0); i-- {
fmt.Printf("step %d\n", i)
}
}
Я ожидаю, что эта функция остановится на выходе step 0
, но она переполняет int и продолжается вечно с step 18446744073709551615
и так далее