for <condition> { . }
is exactly a while loop. The c style for statement's second clause is exactly
this and in c you can do this clumsily with:
for (i=1; <condition>; true ) { . }
Go assumes that a single boolean expression is the same without initial
statement and post block loop statement. If you want to be clever it is even
possible to use multiple assignment operations to iterate one thing and perform
an action on a separate thing:
fibo := 0
for i := 0; i<11 ; i, fibo = i + 1, fibo + i {}
which would produce the tenth element of the fibonacci series.
The only loop construct not possible with Go's for is the first condition to be
evaluated after the first execution of the block.
As someone pointed out, for this the most concise construction is:
for {
...
if condition {
break
}
}
or maybe this would work:
for cond := true; cond; {
...
if <condition> {
cond = false
}
}
but I think the first is less wordy.
If there was a language change for this, putting an optional condition after an
unconditional for would probably break no code, eg:
for {
...
} <condition>
assuming this condition is evaluated in the for block scope
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.