Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
package main
import "fmt"
func main() {
a := [3]int{1, 2, 3}
b := a
b[0] = 9
fmt.Println(a[0], b[0])
}1 9
- Ждать
9 9, будтоbделит массив сa: присваивание массива копирует все его элементы, поэтому запись вb[0]не меняетa. - Ждать ошибку компиляции, как в C, где массив нельзя присвоить: в Go
b := aдопустимо и копирует весь массив.
- Как сделать, чтобы
bвидел те же элементы, что иa? - Что происходит с массивом вызывающего, если функция получает его параметром
[3]intи меняет?