判断下面代码的输出

参考解析

题目来源:字节跳动

答案:

给了一段go的代码 让你判断输出(涉及 结构体和接口之间的比较)

  1. package main
  2. import "fmt"
  3. type A struct {
  4. }
  5. func (this *A) Do() {
  6. }
  7. type AI interface {
  8. Do()
  9. }
  10. func main() {
  11. var i AI
  12. var a *A
  13. if i == nil {
  14. fmt.Println("i == nil #1")
  15. }
  16. i = nil
  17. if i == nil {
  18. fmt.Println("i == nil #2")
  19. }
  20. a = nil
  21. i = a
  22. if i == nil {
  23. fmt.Println("i == nil #3")
  24. }
  25. }

输出结果

  1. i == nil #1
  2. i == nil #2