面试题。为什么输出BBBBB?

```go import ( "fmt" ) type People interface { Show() } type Student struct{} func (stu *Student) Show() { } func live() People { var stu *Student return stu } func main() { if live() == nil { fmt.Println("AAAAAAA") } else { fmt.Println("BBBBBBB") } } ```
已邀请:

simple - 既要有梦想,又要有实力

赞同来自: haoc7 yann1992

请看这个[链接](https://gocn.io/question/1011),这个问题之前已经讨论过了。

smallfish1 - 国内 Prometheus 首席布道师,是电子书《Promethues 实战》和 《Go 零基础入门》作者,另外对 SRE,自动化运维有深入理解。

赞同来自: silenceshell 皇虫

live() 返回的是声明的指针,虽然指针指向的内容为空,但是指针本身不为空

小火箭 - 90后IT男

赞同来自: tangmo

`live()`中的stu是nil,但是其返回值是interface类型,值是*Student类型的nil

要回复问题请先登录注册