Ответ
Это зависит от того, что понимать под «модификацией»:
1. Изменение элементов массива
Да, можно. Вы можете изменять значение любого элемента массива по его индексу.
arr := [3]int{10, 20, 30}
arr[0] = 100 // OK
fmt.Println(arr) // Вывод: [100 20 30]
2. Изменение размера массива
Нет, нельзя. В Go массив имеет фиксированный размер, который определяется в момент его создания и является частью его типа. Например, типы [3]int
и [4]int
— это два разных, несовместимых типа.
// Попытка присвоить массив другого размера приведет к ошибке компиляции
var arr [3]int
// arr = [4]int{} // Ошибка: cannot use [4]int{} (type [4]int) as type [3]int in assignment
Решение: Слайсы (Slices)
Для коллекций, размер которых нужно изменять динамически, в Go используются слайсы (slices). Слайс — это гибкая и мощная обертка над массивом, которая позволяет добавлять элементы и изменять свой размер.
slice := []int{10, 20, 30}
// Изменение элемента (как в массиве)
slice[0] = 100
// Добавление нового элемента (изменение размера)
slice = append(slice, 40)
fmt.Println(slice) // Вывод: [100 20 30 40]