πŸ’¬Π§Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ†ΠΈΠΊΠ»ΠΎΠΌ range Π² Go?



πŸ“Œ Value Π² Ρ†ΠΈΠΊΠ»Π΅ range являСтся ΠΊΠΎΠΏΠΈΠ΅ΠΉ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ структуру, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΉ Ρ‡Π΅Ρ€Π΅Π· индСкс ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ классичСский Ρ†ΠΈΠΊΠ» for (Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ элСмСнт ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π΅ являСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ).



πŸ“Œ Π¦ΠΈΠΊΠ» range ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ прСдоставлСнноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ†ΠΈΠΊΠ»Π°, ΠΏΡƒΡ‚Π΅ΠΌ создания ΠΊΠΎΠΏΠΈΠΈ (нСзависимо ΠΎΡ‚ Ρ‚ΠΈΠΏΠ°). Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎΠ± этом ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ распространСнных ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ доступу ΠΊ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ элСмСнту.



β€’ НапримСр:





a := [3]int{0, 1, 2}

for i, v := range a {

a[2] = 10

if i == 2 {

fmt.Println(v)

}

}





β€’ Массив a инициализируСтся значСниями [0, 1, 2], ΠΏΡ€ΠΈ этом ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ a[2] Π½Π° 10 Π½Π΅ влияСт Π½Π° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ массив Π±Ρ‹Π» ΠΎΡ†Π΅Π½Π΅Π½ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ†ΠΈΠΊΠ»Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° индСкс i Ρ€Π°Π²Π΅Π½ 2, пСрСмСнная v (которая являСтся ΠΊΠΎΠΏΠΈΠ΅ΠΉ элСмСнта массива Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°Ρ‡Π°Π»Π° Ρ†ΠΈΠΊΠ»Π°) всС Π΅Ρ‰Π΅ содСрТит исходноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2, Π° Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10.