в 1 варианте?
type Person struct {
name string
}
// 1 solution
func change(p *Person) {
*p = Person{
name: "Brain",
}
}
// 2 solution
func change2(p **Person) {
**p = Person{
name: "Brain",
}
}
func main() {
person := &Person{
name: "Pinky",
}
fmt.Println(person.name)
change(person)
fmt.Println(person.name)
fmt.Println(person.name)
change2(&person)
fmt.Println(person.name)
}
Речь про аргумент функции? Ну и там и там копирование указателя. С т.з. памяти на передачу аргумента эти функции эквивалентны Ток вы не меняете name, а создаёте новый объект ...
Вы бы полный текст задачи с комментариями привели, а то по той отрывочной, что вы дали не понятно ровным счетом ничего. М.б в комментарии идет речь о том, что не надо делать функцию с сигнатурой func change(p Person) Person
https://www.youtube.com/watch?v=rDZB4ueHxOY
Обсуждают сегодня