为什么这两个destroy函数都不会将指针更改为 nil,我该如何创建这样的函数?
package main
import (
"fmt"
)
type position struct {
x int
y int
}
func (p *position) destroy() {
p = nil
}
func destroy(p *position) {
p = nil
}
func main() {
p1 := &position{1,1}
p2 := &position{2,2}
p1.destroy()
destroy(p2)
if p1 == nil {
fmt.Println("p1 == nil")
} else {
fmt.Println(p1)
}
if p2 == nil {
fmt.Println("p2 == nil")
} else {
fmt.Println(p2)
}
}
输出:
&{1 1}
&{2 2}
https://play.golang.org/p/BmZjX1Hw24u
富国沪深
相关分类