将指针传递给 go defer 函数不起作用
在 PHP 编程中,指针传递给 go defer 函数时可能出现不起作用的情况。PHP 中的指针用于存储变量的内存地址,通过传递指针,可以在函数内部修改原始变量的值。然而,当将指针传递给 go defer 函数时,有时会出现无法修改原始变量的情况。这可能是由于 go defer 函数在执行时会创建一个新的 Goroutine,而指针可能指向了不同的内存空间,导致无法正确修改变量的值。因此,在 PHP 编程中,应谨慎使用指针传递给 go defer 函数,以避免出现意想不到的问题。
问题内容
在我的代码中,我尝试使用 numaddr
来记录 defer 语句后 num 的变化
func deferrun() { num := 1 numaddr := &num defer fmt.printf("num is %d", *numaddr) num = 2 return } func main() { deferrun() } 登录后复制