Изменение структуры по указателю
Условие задачи
Нужно определить, какие значения будут напечатаны
gopackage main
import (
"fmt"
"unsafe"
)
type st struct {
p1 bool
p2 int
p3 bool
}
func main() {
myStr := st{}
fmt.Println(unsafe.Sizeof(myStr)) // 0 ???
fmt.Println(myStr) // 1 ???
mutatePtr1(&myStr)
fmt.Println(myStr) // 3 ???
mutatePtr2(&myStr)
fmt.Println(myStr) // 5 ???
}
func mutatePtr1(in *st) {
in = &st{
p1: true,
p2: 666,
p3: false,
}
fmt.Println("in mutatePtr1: ", *in) // 2 ???
}
func mutatePtr2(in *st) {
*in = st{
p1: false,
p2: 8841,
p3: true,
}
fmt.Println("in mutatePtr2: ", *in) // 4 ???
}