Szukasz abstrakcji, która nie istnieje w Golang. Go jest "prosty" według projektu. Oczywiście sama prosta jest bardzo względnym i subiektywnym określeniem. Na przykład, następujący byłoby proste dla niektórych:
// This is not real Go code
for index, value := range(array, stride = 4, start = 1) {
...
}
To dlatego, że informuje kompilator, co robić, a nie, jak to zrobić - ostateczne abstrakcję - w jaki sposób można zmienić bez co zmienia. Ale w jaki sposób jest abstrahowany. Właśnie z tego powodu, inni woleliby:
// This *is* real Go code
start := 1 // we start not at 0 but at one, just for fun
stride := 4 // we skip 3 between this and the next one of interest
for i: = start; i < len(array); i += stride {
...
}
Kod ten mówi, jak coś jest zrobione, i jako efekt uboczny, powinieneś zrozumieć, co się robi. Trochę abstrakcji - ale to kompromis inżynieryjny, ponieważ jest zarówno szybki, jak i nieco prosty. Większość kompromisów inżynierskich Go błądzi po stronie prostoty i szybkości.
Go pozwala jednak na zbudowanie takiej abstrakcji przy niewielkim wysiłku.
Więc w tym przypadku Czy będę miał sekwencję v [1], v [4], v [8], ...? –
Nie, nie będziesz musiał używać zakresu dla tego przypadku. –
Wielkie dzięki. Dostałem to) –