Golang for range

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket
12 июня 2020 г., 11:11

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

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

12 июня 2020 г., 11:26

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

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

12 июня 2020 г., 11:44

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

Пример:

 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.

12 июня 2020 г., 11:54

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

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 очень похожи своим синтаксисом и принципом работы.

12 июня 2020 г., 12:02

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

Также вы можете опустить индекс или значение, путем его присвоения к _. Если вам нужен только индекс, опустите ", 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

12 июня 2020 г., 12:09