Sobes.tech
Back to questions
Junior
27

// Что выведет следующий код и почему? package main import "fmt" type Person struct { Name string } func changeName(person *Person) { person.Name = "Alice" } func main() { person := &Person{ Name: "Bob", } fmt.Println(person.Name) // Bob changeName(person) fmt.Println(person.Name) // Bob }

Companies where asked
СБК ПАРУС

Answer from AI

sobes.tech AI

Код выведет:

Bob
Alice

Объяснение:

  • В функции main создаётся указатель на структуру Person с именем "Bob".
  • При первом выводе печатается person.Name — "Bob".
  • Функция changeName принимает указатель на Person и изменяет поле Name на "Alice".
  • После вызова changeName значение поля изменяется, поэтому второй вывод показывает "Alice".

В Go при передаче указателя в функцию изменения структуры отражаются на оригинальном объекте.