Golang for range

Пользователь

от anthony , в категории: Общие вопросы , 5 лет назад

Каким образом работает цикл for в Go? Помогите пожалуйста. Изучал до этого Python некоторое время, вроде как они немного похожи…

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

5 ответов

Пользователь

от gracie , 5 лет назад

В Go for range работает таким же образом, как и в Python. То есть range – это диапазон, по которому пробегается цикл for.

Пользователь

от anthony , 5 лет назад

Хорошо, я понял, покажи пример кода, как это всё работает, для полной ясности происходящего. Заранее благодарю за помощь.

Пользователь

от gracie , 5 лет назад

Пример:

 package main

import "fmt"

var pow = []int{1, 2, 4, 8, 16, 32, 64, 128}

func main() {

 for i, v := range pow {

   fmt.Printf("2**%d = %d\n", i, v)

 }

}

Вывод:

2**0 = 1

2**1 = 2

2**2 = 4

2**3 = 8

2**4 = 16

2**5 = 32

2**6 = 64

2**7 = 128

Мне кажется, тут всё понятно, так как код простой, тем более для того, кто учил Python.

Пользователь

от anthony , 5 лет назад
gracie: Пример:  package main import "fmt" var pow = []int{1, 2, 4, 8, 16, 32, 64, 128} func main() {  for i, v := range pow {    fmt.Printf("2**%d = %d\n", i, v)  } } Вывод: 2**0 = 1 2**1 = 2 2**2 = 4 2**3 = 8 2**4 = 16 2**5 = 32 2**6 = 64 2**7 = 128 Мне кажется, тут всё понятно, так как код простой, тем более для того, кто учил Python.

Да, всё понятно, спасибо. Действительно, Go и Python очень похожи своим синтаксисом и принципом работы.

Пользователь

от brain.von , 5 лет назад

Также вы можете опустить индекс или значение, путем его присвоения к _. Если вам нужен только индекс, опустите ", value" полностью.

Пример:

package main

import "fmt"

func main() {

 pow := make([]int, 10)

 for i := range pow {

   pow[i] = 1 << uint(i) // == 2**I

 }

 for _, value := range pow {

   fmt.Printf("%d\n", value)

 }

}

Вывод:

1

2

4

8

16