Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
package main
import "fmt"
type Counter struct{ n int }
func (c Counter) Inc() int { c.n++; return c.n }
func main() {
var c Counter
fmt.Println(c.Inc(), c.Inc())
}1 1
- Ждать
1 2: получатель-значение получает копиюcпри каждом вызове, поэтому каждый вызов увеличивает свою копию с0до1, аc.nостаётся0. - Считать получатель-значение доступным только для чтения: метод вправе менять свою копию, и
return c.nвозвращает её новое значение1.
- Что напечатает программа, если дать
Incполучатель-указатель(c *Counter)? - Чему равно
c.nпосле двух вызовов в этой программе?