小编Fra*_*is 的帖子

在指针方法Go中初始化指针接收器

如何使用指针方法初始化指针接收器?

package main

import "fmt"

type Person struct {
    name string
    age  int
}

func (p *Person) Born() {

    if nil == p {
        p = new(Person)
    }

}

func main() {

    var person *Person
    person.Born()
    if person == nil {
        fmt.Println("This person should be initialized. Why is that not the case?")
    }
    fmt.Println(person)
}
Run Code Online (Sandbox Code Playgroud)

在调用.Born()方法之后,人们会期望人被初始化(归零),这是一个指针接收器.但事实并非如此.有人可以对此有所了解吗?

pointers go receiver

5
推荐指数
1
解决办法
3332
查看次数

标签 统计

go ×1

pointers ×1

receiver ×1