Skip to content

Commit

Permalink
add more examples
Browse files Browse the repository at this point in the history
  • Loading branch information
fey committed Feb 20, 2024
1 parent 66b7d92 commit 794e658
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 101 deletions.
Empty file removed drafts/.gitkeep
Empty file.
95 changes: 0 additions & 95 deletions modules/20-array-slice-map/20-for-loop/description.ru.yml

This file was deleted.

45 changes: 39 additions & 6 deletions modules/20-array-slice-map/20-for-loop/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,21 +62,54 @@ for i := 0; i < 10; i++ {
fmt.Println(nums) // [0 2 4 6 8]
```

Для обхода коллекции в Go есть "синтаксический сахар" `range`. Эта конструкция обходит слайс, возвращая индекс и элемент на каждом шаге:
Для обхода коллекции в Go есть "синтаксический сахар" `range`. Эта конструкция обходит слайс, возвращая пару - индекс и элемент на каждом шаге:

```go
names := []string{"John", "Harold", "Vince"}

// i — это индекс, name — это значение на текущем шаге цикла
for i, name := range names {
fmt.Println("Hello ", name, " at index ", i)
fmt.Println("Hello ", name, " at index ", i)
}

// => Hello John at index 0
// => Hello Harold at index 1
// => Hello Vince at index 2
```

Если пропустить вторую переменную, то получим только индексы:

```go
for i := range names {
fmt.Println("index = ", i)
}

// => index = 0
// => index = 1
// => index = 2
```

Можно пропустить первую переменную, это можно сделать с помощью `_`:

```go
for _, name := range names {
fmt.Println("Hello ", name)
}

// => Hello John
// => Hello Harold
// => Hello Vince
```

Вывод:
Пропуск сразу двух переменных не сработает. На этапе компиляции произойдет ошибка:

```go
Hello John at index 0
Hello Harold at index 1
Hello Vince at index 2
for _,_ := range names {
fmt.Println("Nothing")
}
```

```text
# command-line-arguments
./main.go:21:14: no new variables on left side of :=
```

0 comments on commit 794e658

Please sign in to comment.