Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
package main
import "fmt"
type Point struct{ X, Y int }
func main() {
p := Point{X: 1, Y: 2}
q, r := p, &p
r.X = 9
fmt.Println(q.X, p.X)
}1 9
- Ждать, что
qтоже изменится:q := pкопирует все поля структуры, поэтомуq— отдельнаяPoint, у которойXостаётся1. - Считать, что
r.X = 9требует(*r).X: Go сам разыменовывает указатель на структуру, поэтомуr.Xпишет в поле самойp.
- Что напечатает
fmt.Println(r.X)в конце программы? - Как передать
Pointв функцию, чтобы функция могла её изменить?