作者回复: 这个在我的公众号里,讨论过这个问题。 defer延迟执行只是最后一层调用的延迟
作者回复: 不用写在最前面,就例子而言要写在你的panic前面。但是在实际程序中由于我们不知道错误/panic会在哪里发生所以把defer写在最前面会更简单保险。
作者回复: 你尝试都用fmt.Println输出
作者回复: 改成用fmt.Println(“after start”)
作者回复: 不太一样,析构函数的执行时间是和对象的生命周期相关,而defer可以用在非对象的场景
作者回复: 这个是短音I,不发“滴”。找个发音软件
作者回复: 这个是用了不同的输出方式的原因,都用fmt.Println输出试试