昨天和前天的考题里,都涉及了 defer、返回值的相关问题,今天的次条统一做了讲解,有必要看下。说实话,现在我还经常掉进坑里,时不时还会翻出文章看看。

今天的题目也跟 defer 相关,看完文章回来做个小练习,就当练手。

欢迎在留言区补充!

看下今天的题目:
1.下面代码段输出什么?

type Person struct {
    age int
}

func main() {
    person := &Person{28}

    // 1. 
    defer fmt.Println(person.age)

    // 2.
    defer func(p *Person) {
        fmt.Println(p.age)
    }(person)  

    // 3.
    defer func() {
        fmt.Println(person.age)
    }()

    person.age = 29
}

 

 

答案以及解析会在下一篇文章中给出,鼓励大家在留言区留下答案,抱团学习,日拱一卒,每天进步一点!

 

所有学习上的成功,都只依靠两件事 -- 策略和坚持,而坚持本身就是最重要的策略!

 

推荐阅读:

Go 面向对象编程(译)

不一样的成功启示录

 

如果我的文章对你有所帮助,点赞、转发都是一种支持!

Go 面试每天一篇(第 19 天)_面试

Go 面试每天一篇(第 19 天)_面试_02

Go 面试每天一篇(第 19 天)_面试_03