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 при передаче указателя в функцию изменения структуры отражаются на оригинальном объекте.