I’m back from my holiday! I thought I’d send at least a few dalies over the last week while I was on vacation, but it wasn’t meant to be. But now that I’m back, we’ll pick up where we left off…
For statements with
range
clause…
- For an integer value
n
, the iteration values 0 throughn-1
are produced in increasing order. Ifn
<= 0, the loop does not run any iterations.
This form of range was added recently, in Go 1.22, and it serves as a simple short cut. These two code snippets are functionally equivalent:
for x := 0; x < 10; x++ {
for x := range 10 {
It might be a bit counter-intuitive that you can use a negative integer value as the argument to range
, without a runtime panic: “If n
<= 0, the loop does not run any iterations.”
But I think this makes sense, if we consider it to be equivalent to the earlier form:
for x := 0; x < -3; x++ {
would also iterate 0 times, and would not panic.
Quotes from The Go Programming Language Specification Language version go1.22 (Feb 6, 2024)