▲ | williamdclt 4 days ago | ||||||||||||||||||||||||||||||||||||||||||||||
I'll agree that explicit loops are easier to debug, but that comes at the cost of being harder to write _and_ read (need to keep state in my head) _and_ being more bug-prone (because mutability). I think it's a bad trade-off, most languages out there are moving away from it | |||||||||||||||||||||||||||||||||||||||||||||||
▲ | nasretdinov 4 days ago | parent [-] | ||||||||||||||||||||||||||||||||||||||||||||||
There's actually one more interesting plus for the for loops that's not quite obvious in the beginning: the for-loops allow to do perform a single memory pass instead of multiple. If you're processing a large enough list it does make a significant difference because memory accesses are relatively expensive (the difference is not insignificant, the loop can be made e.g. 10x more performant by optimising memory accesses alone). So for a large loop the code like for i, value := source { result[i] = value * 2 + 1 } Would be 2x faster than a loop like for i, value := source { intermediate[i] = value * 2 } for i, value := intermediate { result[i] = value + 1 } | |||||||||||||||||||||||||||||||||||||||||||||||
|