Go - Массивы: Полное руководство для начинающих
Привет,野心勃勃ые программисты Go! Я рад провести вас через мир массивов в Go. Как кто-то, кто teaches programming на протяжении многих лет, я могу заверить вас, что понимание массивов критически важно для вашего coding adventure. Итак, погружаемся в!
Что такое массивы?
Прежде чем мы начнем, представьте, что вы организовываете книжную полку. У вас есть фиксированное количество ячеек, и каждая ячейка может содержать одну книгу. Это 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