github.com/maikovskiys/l1tasks@v0.0.0-20230927052451-6436d7687dc9/learn/dev10/main.go (about)

     1  package main
     2  
     3  import "fmt"
     4  
     5  /*
     6  Что выведет данная программа и почему?
     7  
     8  в go все передается по значению. в функцию мы передали копию адреса памяти, которая лежит уже на другом адресе.
     9  */
    10  
    11  func main() {
    12  	var (
    13  		a = 1
    14  		p = &a
    15  	)
    16  	fmt.Println(*p)
    17  	fmt.Println(p)
    18  	update(p)
    19  	fmt.Println(*p)
    20  }
    21  func update(g *int) {
    22  	fmt.Println("in func:", &g)
    23  	b := 2
    24  	g = &b
    25  }