cpp

Переворачивание слайса

Давайте потренируемся и напишем функцию reverse(), позволяющую перевернуть слайс, состоящий из целых чисел (листинг 5.6).

Листинг 5.6. Переворачивание слайса

package main

import "fmt"

func main() {
   arr := []int{1, 2, 3, 4, 5}
   reverse(arr)
   fmt.Println(arr) // [5 4 3 2 1]
   reverse(arr)
   fmt.Println(arr) // [1 2 3 4 5]
}
func reverse(arr []int) {
   if len(arr) < 2 {
      return
   }
   for i, j := 0, len(arr) - 1; i < j; i, j = i + 1, j - 1 {
      arr[i], arr[j] = arr[j], arr[i]
   }
}

Вначале переменной i присваиваем индекс первого элемента, а переменной j — индекс последнего элемента. На каждой итерации цикла будем увеличивать значение переменной i и уменьшать значение переменной j. Цикл будет выполняться, пока i меньше j. На каждой итерации цикла мы просто меняем местами значения двух элементов слайса.

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp