Изменение поля по указателю в Go
Если указатель смотрит на структуру, запись в её поле через указатель меняет исходное значение. К полю обращаются через точку после имени указателя. Запишем пользователя, возьмём адрес и изменим возраст:
package main
import "fmt"
type User struct {
Name string
Age int
}
func main() {
u := User{Name: "ann", Age: 20}
ptr := &u
ptr.Age = 25
fmt.Println(u.Age) // выведет 25
}
То же работает, если адрес взяли у литерала:
package main
import "fmt"
type User struct {
Name string
Age int
}
func main() {
ptr := &User{Name: "bob", Age: 30}
ptr.Name = "ben"
fmt.Println(ptr.Name) // выведет ben
}
Дан код:
package main
import "fmt"
type Employee struct {
Name string
Age int
}
func main() {
emp := Employee{Name: "ann", Age: 20}
ptr := &emp
}
Запишите в поле возраста число 21
и выведите возраст.
Создайте указатель на литерал Employee
с "kim" и 10, измените имя
на "kit" и выведите имя из указателя.