Практика на указатели в Go
Расскажите, каким будет результат выполнения кода:
package main
import "fmt"
type Employee struct {
Name string
Age int
}
func main() {
emp := Employee{Name: "ann", Age: 20}
ptr1 := &emp
ptr2 := ptr1
ptr2.Age = 25
fmt.Println(emp.Age)
fmt.Println(ptr1.Age)
}
Исправьте код так, чтобы переменная снаружи функции изменилась:
package main
import "fmt"
func twice(num int) {
num *= 2
}
func main() {
value := 5
twice(value)
fmt.Println(value)
}
Расскажите, каким будет результат выполнения кода:
package main
import "fmt"
func main() {
num1 := 4
num2 := 6
ptr := &num1
*ptr = num2
fmt.Println(num1)
fmt.Println(num2)
}
Исправьте код так, чтобы поле структуры изменилось снаружи функции:
package main
import "fmt"
type Employee struct {
Name string
Age int
}
func setAge(emp Employee) {
emp.Age = 30
}
func main() {
emp := Employee{Name: "ann", Age: 20}
setAge(emp)
fmt.Println(emp.Age)
}
Расскажите, каким будет результат выполнения кода:
package main
import "fmt"
func main() {
var ptr *int
fmt.Println(ptr == nil)
}