"Bugün i = 0; i < len; i++
ve bu çağda neden bunu söylemek zorundayız ?"
Katılmıyorum, inşa etmeyi seviyorum. İsterseniz uzun sürümü kullanabilirsiniz, ancak deyimsel Go şudur:
var a = []int{1, 2, 3}
for i, v := range a {
fmt.Println(i, v)
}
for .. range
Endeksi - yapı tüm elemanları ve malzemeleri iki değeri döngüler i
ve değer v
.
range
ayrıca haritalar ve kanallar üzerinde de çalışır.
Yine de, for
herhangi bir biçimde beğenmezseniz each
, map
birkaç satırda tanımlayabilirsiniz :
type IntArr []int
func (a IntArr) each(fn func(index, value int)) {
for i, v := range a {
fn(i, v)
}
}
func main() {
var a = IntArr([]int{2, 0, 0, 9})
var fnPrint = func(i, v int) {
fmt.Println(i, ":", v)
}
a.each(fnPrint)
}
baskılar
0 : 2
1 : 0
2 : 0
3 : 9
Go'yu çok sevmeye başladım :)