Go - Массивы: Полное руководство для начинающих

Привет,野心勃勃ые программисты Go! Я рад провести вас через мир массивов в Go. Как кто-то, кто teaches programming на протяжении многих лет, я могу заверить вас, что понимание массивов критически важно для вашего coding adventure. Итак, погружаемся в!

Go - Arrays

Что такое массивы?

Прежде чем мы начнем, представьте, что вы организовываете книжную полку. У вас есть фиксированное количество ячеек, и каждая ячейка может содержать одну книгу. Это Essentially what an array is in programming – фиксированного размера коллекция элементов того же типа.

Объявление массивов

В Go, объявление массива похоже на то, чтобы сказать компьютеру: "Эй, мне нужно определенное количество ячеек для хранения некоторых предметов." Вот как мы это делаем:

var bookshelf [5]string

Эта строка создает массив под названием bookshelf, который может содержать 5 строк. Это как если бы вы установили книжную полку с 5 ячейками, каждая из которых может удерживать название книги.

Но подождите, есть больше! Мы можем объявлять массивы разных типов и размеров:

var scores [3]int
var temperatures [7]float64
var flags [2]bool

Запомните,_once you declare an array with a specific size, этот размер установлен в камне. Это как строительство книжной полки – когда она построена, вы не можете вдруг добавить или удалить полки!

Инициализация массивов

Теперь у нас есть наш массив, давайте положим несколько книг на нашу полку! Есть несколько способов сделать это:

Метод 1: Инициализация во время объявления

var fruits [3]string = [3]string{"apple", "banana", "cherry"}

Здесь мы создаем fruit bowl с тремя конкретными фруктами уже на месте.

Метод 2: Краткое объявление

colors := [4]string{"red", "blue", "green", "yellow"}

Этоshortcut way of declaring and initializing an array в один прием. Это какбыстро arranging a set of paint colors.

Метод 3: Частичная инициализация

var numbers [5]int = [5]int{1, 2, 3}

В этом случае мы указали только первые три числа. Go автоматически заполнит остальные нулями. Это как если бы у вас был 5-дневный планер, в котором вы спланировали только первые три дня.

Метод 4: Давайте Go определит размер

animals := [...]string{"dog", "cat", "hamster", "fish"}

Используя ..., мы говорим Go: "Считайте это для меня,好吗?" Go создаст массив с exact number of elements.

Доступ к элементам массива

Теперь, как мы действительно используем эти массивы? Мыaccess elementsusing их индекс, который начинается с 0 (я знаю, это немного奇怪 сначала, но вы привыкните к этому!).

fruits := [3]string{"apple", "banana", "cherry"}
fmt.Println(fruits[0]) // Выводит: apple
fmt.Println(fruits[1]) // Выводит: banana
fmt.Println(fruits[2]) // Выводит: cherry

Думайте об этом так: на книжной полке первая книга находится в позиции 0, вторая в позиции 1 и так далее.

Мы также можем изменять элементы:

fruits[1] = "blueberry"
fmt.Println(fruits) // Выводит: [apple blueberry cherry]

Мы просто обменяли наш банан на чернику!

Массивы Go в деталях

Теперь, когда мы рассмотрели основы, давайте углубимся немного дальше.

Длина массива

Чтобы узнать, сколько элементов в массиве, мы используем функцию len():

numbers := [4]int{2, 4, 6, 8}
fmt.Println(len(numbers)) // Выводит: 4

Это как если бы вы спросили: "Сколько книг на этой полке?"

Циклический доступ к массиву

Часто мы хотим сделать что-то с каждым элементом в массиве. Мы можем использовать for loop для этого:

colors := [4]string{"red", "blue", "green", "yellow"}
for i := 0; i < len(colors); i++ {
fmt.Printf("Цвет %d это %s\n", i+1, colors[i])
}

Это выведет:

Цвет 1 это red
Цвет 2 это blue
Цвет 3 это green
Цвет 4 это yellow

Это как если бы вы прошли по своей книжной полке и прочитали название каждой книги.

Много измерений массивов

Иногда нам нужно организовать данные более сложными способами. Вступают в игру многомерные массивы! Представьте их как массивы массивов:

matrix := [3][3]int{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
}

Это создает 3x3 сетку, как mini spreadsheet или доска для tic-tac-toe.

Чтобы получить доступ к элементам многомерного массива:

fmt.Println(matrix[1][2]) // Выводит: 6

Это получить доступ к элементу во втором ряду (индекс 1) и третьем столбце (индекс 2).

Методы массивов в Go

Вот таблицаcommon operations вы можете выполнять с массивами в Go:

Операция Описание Пример
Объявление Создание массива var arr [5]int
Инициализация Установка начальных значений arr := [3]int{1, 2, 3}
Доступ Получение конкретного элемента element := arr[2]
Модификация Изменение элемента arr[1] = 10
Длина Получение размера массива len(arr)
Циклический доступ Цикл по элементам for i := 0; i < len(arr); i++ { ... }
Копирование Создание новой копии newArr := arr

Запомните, в отличие от некоторых других языков, Go не имеет встроенных методов для массивов, таких как push, pop или slice. Для более динамичных операций вы обычно используете slices, которые мы рассмотрим в следующем уроке!

Заключение

Поздравления! Вы только что сделали свои первые шаги в мир массивов в Go. Мы рассмотрели, как их объявлять, инициализировать, доступ к их элементам и даже немного играли с многомерными массивами.

Запомните, массивы в Go имеют фиксированный размер, что делает их отличными для случаев, когда вы знаете точно, сколько элементов вам нужно. Они как надежная книжная полка в вашей комнате – надежная, неизменная и всегда在那里, когда вам нужно.

Пока вы продолжаете свое путешествие в Go, вы найдете массивы повсюду. Они являются строительными блоками для более сложных структур данных и критически важны для эффективного управления данными.

Продолжайте практиковаться, оставайтесь любопытными и,最重要的是, получайте удовольствие от программирования! В следующем уроке мы рассмотрим slices – более гибкого родственника массивов в Go. Пока что, счастливого кодирования!

Credits: Image by storyset